Ինչպես ստեղծել արհեստական ինտելեկտով տեսախցիկ ձեր սմարթֆոնի վրա
Տեխնոլոգիական առաջընթացը չի սահմանափակվում միայն սարքավորումների նորարարություններով, այլև ներառում է ավելի ու ավելի բարդ ծրագրային ապահովման մշակում, որոնցից մեկը արհեստական բանականության (ԱԲ) կիրառումն է սմարթֆոնների տեսախցիկներում: Այս տեխնոլոգիան հեղափոխություն է մտցնում լուսանկարների նկարահանման և խմբագրման մեր եղանակի մեջ: Արհեստական բանականությամբ աշխատող տեսախցիկները ոչ միայն օգնում են ստեղծել ավելի գեղեցիկ պատկերներ, այլև պարզեցնում են նկարահանման գործընթացը ավտոմատացման գործառույթների միջոցով: Այս հոդվածը մանրամասն կուսումնասիրի, թե ինչպես ստեղծել ԱԲ տեսախցիկ սմարթֆոնի վրա՝ սկսած հայեցակարգի ներածությունից մինչև դրա իրականացումը:
Տեսախցիկի ճանաչում արհեստական բանականության միջոցով
Արհեստական բանականությամբ հագեցած սմարթֆոնների տեսախցիկները օգտագործում են արհեստական բանականության տեխնոլոգիա՝ ավտոմատ կերպով վերլուծելու, օպտիմալացնելու և բարելավելու պատկերի որակը: Սմարթֆոնների տեսախցիկներում արհեստական բանականության որոշ տարածված գործառույթներ ներառում են՝
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();
}
}
}
}
««
Եզրակացություն
Սմարթֆոնի վրա արհեստական ինտելեկտով հագեցած տեսախցիկ կառուցելը չի նշանակում միայն բարդ արհեստական ինտելեկտի մոդել մշակել, այլև այդ մոդելը սմարթֆոնի առկա սարքավորումների և ծրագրային ապահովման հետ ինտեգրել: Հասկանալով և իրականացնելով այնպիսի քայլեր, ինչպիսիք են մշակման միջավայրի պատրաստումը, տվյալների հավաքածուների հավաքագրումը, արհեստական ինտելեկտի մոդելի մարզումը, մոդելը սմարթֆոնում տեղակայելը և մոդելը տեսախցիկի հավելվածի հետ ինտեգրելը, մենք կարող ենք ստեղծել ոչ միայն խելացի տեսախցիկ, այլև այնպիսին, որը կարող է ապահովել օպտիմալ արդյունքներ ավտոմատացման միջոցով, որը մեծապես կօգտակար լինի օգտատերերի համար:
Այս տեխնոլոգիան ոչ միայն հեշտացնում է սովորական օգտատերերի աշխատանքը, այլև հնարավորություն է ընձեռում հավելվածների մշակողներին և պրոֆեսիոնալ լուսանկարիչներին ավելի բարդ և արդյունավետ եղանակով բացահայտել իրենց ստեղծագործականությունը։