Ինչպես սմարթֆոնի վրա արհեստական ​​ինտելեկտով տեսախցիկ պատրաստել

Ինչպես ստեղծել արհեստական ​​ինտելեկտով տեսախցիկ ձեր սմարթֆոնի վրա

Տեխնոլոգիական առաջընթացը չի սահմանափակվում միայն սարքավորումների նորարարություններով, այլև ներառում է ավելի ու ավելի բարդ ծրագրային ապահովման մշակում, որոնցից մեկը արհեստական ​​բանականության (ԱԲ) կիրառումն է սմարթֆոնների տեսախցիկներում: Այս տեխնոլոգիան հեղափոխություն է մտցնում լուսանկարների նկարահանման և խմբագրման մեր եղանակի մեջ: Արհեստական ​​բանականությամբ աշխատող տեսախցիկները ոչ միայն օգնում են ստեղծել ավելի գեղեցիկ պատկերներ, այլև պարզեցնում են նկարահանման գործընթացը ավտոմատացման գործառույթների միջոցով: Այս հոդվածը մանրամասն կուսումնասիրի, թե ինչպես ստեղծել ԱԲ տեսախցիկ սմարթֆոնի վրա՝ սկսած հայեցակարգի ներածությունից մինչև դրա իրականացումը:

Տեսախցիկի ճանաչում արհեստական ​​բանականության միջոցով

Արհեստական ​​բանականությամբ հագեցած սմարթֆոնների տեսախցիկները օգտագործում են արհեստական ​​բանականության տեխնոլոգիա՝ ավտոմատ կերպով վերլուծելու, օպտիմալացնելու և բարելավելու պատկերի որակը: Սմարթֆոնների տեսախցիկներում արհեստական ​​բանականության որոշ տարածված գործառույթներ ներառում են՝

1. Օբյեկտի և տեսարանի ճանաչում. Արհեստական ​​բանականությունը կարող է հայտնաբերել նկարահանվող օբյեկտը կամ տեսարանը և ավտոմատ կերպով կարգավորել տեսախցիկի կարգավորումները։
2. Դիմանկարի ռեժիմ. Ավտոմատ կերպով մշուշում է ֆոնը՝ գլխավոր օբյեկտն ավելի առանձնացնելու համար:
3. Լուսավորության օպտիմալացում. Ավտոմատ կերպով կարգավորում է լուսավորությունը և պայծառությունը՝ լավագույն արդյունքների հասնելու համար:
4. Պատկերի որակի բարելավում. Հեռացնում է աղմուկը, բարելավում է գույնը և սրում պատկերները։

Անհրաժեշտ գործիքներ և տեխնոլոգիա

Սմարթֆոնի վրա արհեստական ​​ինտելեկտով տեսախցիկ մշակելու համար կան մի քանի գործիքներ և տեխնոլոգիաներ, որոնք պետք է պատրաստ լինեն.

1. Արհեստական ​​բանականության մշակման շրջանակ. Օրինակ՝ TensorFlow, PyTorch կամ OpenCV, որոնք օգտագործվում են արհեստական ​​բանականության մոդելներ կառուցելու համար։
2. Պատկերի տվյալների հավաքածու. պատկերի տվյալների հավաքածու, որն օգտագործվում է արհեստական ​​բանականության մոդելները մարզելու համար:
3. Սարքերի ուսուցում. մեքենայական ուսուցման հնարավորություններով սմարթֆոններ, ինչպիսիք են Google Pixel-ը կամ iPhone-ը՝ արհեստական ​​բանականությամբ հագեցած չիփսեթով։
4. IDE (Ինտեգրված մշակման միջավայր). ծրագրեր մշակելու համար նախատեսված գործիքներ, ինչպիսիք են Android Studio-ն կամ Xcode-ը:
5. Camera API. Android Camera2 API կամ Apple AVFoundation՝ սմարթֆոնների տեսախցիկի գործառույթներին մուտք գործելու համար:

Քայլեր՝ արհեստական ​​ինտելեկտով տեսախցիկ ստեղծելու համար

1. Զարգացման միջավայրի նախապատրաստում

Արհեստական ​​բանականությամբ տեսախցիկ կառուցելու առաջին քայլը մշակման միջավայրի պատրաստումն է: Անհրաժեշտ է տեղադրել IDE, ինչպիսին է Android Studio-ն Android հավելվածների մշակման համար կամ Xcode-ը iOS-ի համար: Նաև համոզվեք, որ տեղադրված են բոլոր անհրաժեշտ SDK-ները և գրադարանները:

2. Տվյալների հավաքածուների հավաքագրում և պատրաստում

Տվյալների բազմությունները արհեստական ​​ինտելեկտի մոդելների մշակման հիմնական տարրն են: Արհեստական ​​ինտելեկտի մոդելները մարզելու համար մեզ անհրաժեշտ են մեծ և բազմազան պատկերի տվյալների բազմություններ: Այս տվյալների բազմությունները կարելի է ստանալ առցանց աղբյուրներից, ինչպիսին է ImageNet-ը, կամ հավաքել առանձին: Տվյալների բազմությունը հավաքագրվելուց հետո կատարվում է նախնական մշակում, ինչպիսիք են պատկերի չափսերի փոփոխությունը, նորմալացումը և տվյալների լրացումը, անհրաժեշտության դեպքում:

3. Արհեստական ​​բանականության մոդելների ստեղծում և մարզում

Տվյալների հավաքածուն պատրաստ լինելուց հետո հաջորդ քայլը արհեստական ​​բանականության մոդելի ստեղծումն ու մարզումն է: Օրինակ՝ TensorFlow շրջանակի միջոցով պատկերի մշակման համար հարմար կոնվոլյուցիոն նեյրոնային ցանցի (CNN) մոդելային ճարտարապետության միջոցով: Այս փուլը ներառում է մոդելի սահմանումը, կոմպիլյացիան և մարզման գործընթացի համար համապատասխանեցման մեթոդները:

«Պիթոն
ներմուծել tensorflow որպես tf
tensorflow.keras.models-ից ներմուծում հաջորդական
tensorflow.keras.layers-ից ներմուծված Conv2D, MaxPooling2D, Flatten, Dense

CNN մոդելի սահմանումը
մոդել = հաջորդական ()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(image_height, image_width, 3)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Խիտ(դասերի_համար, ակտիվացում='softmax'))

Կոմպիլյացիայի մոդել
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['ճշգրտություն'])

Մոդելային ուսուցում
model.fit(ուսուցման_տվյալներ, ուսումնական_պիտակներ, դարաշրջաններ=10, վավերացման_տվյալներ=(վավերացման_տվյալներ, վավերացման_պիտակներ))
««

4. Սմարթֆոնի վրա տեղակայման մոդել

Մոդելը մարզվելուց հետո այն պետք է փոխակերպվի այնպիսի ձևաչափի, որը կարող է օգտագործվել սմարթֆոնի վրա: Android-ի համար կարելի է օգտագործել TensorFlow Lite-ը, մինչդեռ iOS-ի համար Core ML-ը շատ օգտակար է:

«Պիթոն
ներմուծել tensorflow որպես tf

Փոխարկել մոդելը TensorFlow Lite ձևաչափի
փոխարկիչ = tf.lite.TFLiteConverter.from_keras_model(մոդել)
tflite_model = փոխարկիչ.փոխակերպել()

Պահպանեք մոդելը ֆայլի մեջ
open('model.tflite', 'wb')-ի հետ որպես f:
f.write(tflite_model)
««

5. Մոդելի ինտեգրումը տեսախցիկի հավելվածի հետ

Վերջին քայլը արհեստական ​​բանականության մոդելի ինտեգրումն է տեսախցիկի հավելվածում: Android-ում սա ենթադրում է Camera2 API-ի օգտագործում՝ պատկերներ ստանալու և TensorFlow Lite-ի օգտագործում՝ դրանք մշակելու համար: iOS-ում այն ​​օգտագործում է AVFoundation և Core ML:

Ինտեգրման օրինակ Android-ում.

«`ջավա
ներմուծել android.Manifest;
ներմուծել android.app.Activity ֆայլը;
ներմուծել android.content.pm.PackageManager;
ներմուծել android.graphics.Bitmap ֆայլը;
ներմուծել android.os.Bundle ֆայլը;
ներմուծել android.view.SurfaceView ֆայլը;
ներմուծել android.view.SurfaceHolder;
ներմուծել android.widget.Toast ֆայլը;
ներմուծել androidx.annotation.NonNull;
ներմուծել androidx.core.app.ActivityCompat;
ներմուծել androidx.core.content.ContextCompat;
ներմուծել com.google.tflite.Interpreter;

հանրային դաս CameraActivity-ն ընդլայնում է Activity-ն, իրականացնում է SurfaceHolder.Callback {
մասնավոր SurfaceView surfaceView;
մասնավոր SurfaceHolder surfaceHolder;
անձնական տեսախցիկի տեսախցիկ;
մասնավոր թարգմանիչ tflite;

@ Override
պաշտպանված void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);

// Խնդրեք տեսախցիկի թույլտվություն
եթե (ContextCompat.checkSelfPermission(սա, Manifest.permission.CAMERA)
!= Փաթեթների կառավարիչ.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(սա, նոր String[]{Manifest.permission.CAMERA}, 100);
}

// SurfaceView-ի նախնականացում
surfaceView = findViewById(R.id.surfaceView);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(սա);

// Բեռնել TFLite մոդելը
փորձեք {
tflite = նոր մեկնաբանիչ(loadModelFile(“model.tflite”);
} catch(IOException e) {
e.printStackTrace();
}
}

@ Override
հանրային դատարկ մակերեսՍտեղծված(SurfaceHolder պահող) {
տեսախցիկ = Camera.open();
camera.setPreviewDisplay(պահող);
տեսախցիկ.սկսելՆախադիտում();
}

@ Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}

@ Override
հանրային դատարկ մակերեսը ոչնչացված է (SurfaceHolder պահող) {
տեսախցիկ.stopPreview();
տեսախցիկ.ազատում();
}

մասնավոր void processImage(Bitmap bitmap) {
// Նախնական մշակում և եզրակացություն այստեղ
}

@ Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
եթե (հարցման կոդ == 100) {
եթե (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
surfaceHolder.addCallback(սա);
} {Else
Toast.makeText(սա, «Տեսախցիկի թույլտվությունը մերժված է», Toast.LENGTH_SHORT).show();
}
}
}
}
««

Եզրակացություն

Սմարթֆոնի վրա արհեստական ​​ինտելեկտով հագեցած տեսախցիկ կառուցելը չի ​​նշանակում միայն բարդ արհեստական ​​ինտելեկտի մոդել մշակել, այլև այդ մոդելը սմարթֆոնի առկա սարքավորումների և ծրագրային ապահովման հետ ինտեգրել: Հասկանալով և իրականացնելով այնպիսի քայլեր, ինչպիսիք են մշակման միջավայրի պատրաստումը, տվյալների հավաքածուների հավաքագրումը, արհեստական ​​ինտելեկտի մոդելի մարզումը, մոդելը սմարթֆոնում տեղակայելը և մոդելը տեսախցիկի հավելվածի հետ ինտեգրելը, մենք կարող ենք ստեղծել ոչ միայն խելացի տեսախցիկ, այլև այնպիսին, որը կարող է ապահովել օպտիմալ արդյունքներ ավտոմատացման միջոցով, որը մեծապես կօգտակար լինի օգտատերերի համար:

Այս տեխնոլոգիան ոչ միայն հեշտացնում է սովորական օգտատերերի աշխատանքը, այլև հնարավորություն է ընձեռում հավելվածների մշակողներին և պրոֆեսիոնալ լուսանկարիչներին ավելի բարդ և արդյունավետ եղանակով բացահայտել իրենց ստեղծագործականությունը։

Թողեք մեկնաբանություն