ياخشىمۇسىلەر UyApp مۇنبىرىدىكى تورداشلار ،يىقىنياغى مۇنبەر جىمىپ قاپتۇ ،مەنمۇ ئازراق ئىشلار بىلەن مەشغۇل بولۇپ قىلىپ يازما يوللىيالمىدىم ،شۇڭا بۈگۈن سىلەرگە ھازىر مودا بولۇۋاتقان سۈننى ئەقلى ئىقتىدار (AI) بولىقىنى مەشىقلەندۈرۈشنىڭ دەرىسلىكى ھەمدە مىنىڭ ئەمەلى مەشىق جەريانىمنى ئىلىپ كەلدىم.(مەشىقلەندۈرۈشكە ئىشلەتكەن تۈر يازما ئاخىرىدا تور دىسكىغا چىقىرىپ قويىمەن شۇنىڭدىن ئۈگەنسەڭلارمۇ بولىدۇ)
بۇ مەن يىقىندا يازما يوللاش ئۈچۈن مەشىقلەندۈرگەن AI بولىقى ، ئاساسلىق بىر تال جىسىمنى پەرىق ئىتىدۇ ،يەنى مىۋە ساموراي (水果忍者)دىگەن ئويۇندىن مەخسۇس بومبىنى پەرىق ئىتىدىغان قىلىپ مەشىقلەندۈرگەن ،ئەلۋەتتە بىر قىتىمدا كۆپ جىسىمنى پەرىق قىلغىلى بولىدىغان قىلىپ مەشىقلەندۈرگىلى بولىدۇ .
2.1 مەشىقلەندۈرگەن مۇھىت :
2.2 python مۇھىتى ھازىرلاش
1.ئاۋال كومپىيۇترغا python نىڭ 3.8 دىن يۇقىرى نەشىرىنى قاچىلىۋالىمز .بۇنى تەپشىلى چۈشەندۈرۈپ ئۆتمەي چۈنكى بۇ توغۇرلۇق يازما يوللىنىپ بولغان ھەم ئەگەر Python نىمۇ قاچىلاشنى ئۇقمىسىڭىز بۇ تىخنىكىنى ئۈگۈنۈشكە سەل بالدۇرلۇق قىلىپ قالىدۇ.
2.Pytorch بولىقىنى چۈشۈرىمىز , بۇ يەردە دىققەت قىلىشقا تىگىشلىك ئىش ،ئەگەر كومپىيۇتىردا NVIDIA سۈرئەت كۆرسەتكۈچى بولمىسا چۈشۈرۈش بىتىدىكى Compute Platform دىگەن يەردە CPU دىگەن تاللاشنى تاللايمىز،بولمىسا NVIDIA توربىتىغا چىقىپ CUDA11.8 نەشىرىنى چۈشۈرۈپ قاچىلىساق بولىدۇ، ئۇششاق ئىشلارنى چۈشەندۈرۈپ ئولتۇرماي ئاتلاپ ئۆتۈپ كەتتىم.
ئاستىدىكى ئادىرسنى كۆچۈرۈپ ئىلىپ تاپپلاپ بولغاندىن كىيىن Run this Command دىگەن ئىستوندىكى بىر قۇر خەتنى cmd كۆزنىكىگە كىرگۈزسەك بولىدۇ ،بۇ جەريان بەك ئۇزۇن ،بىر سائەت ئەتراپىدا ۋاقىت كىتىدۇ.
地址:https://pytorch.org/
2.3 كىرەكلىك python بولىقىنى ھەمدە باشقا بولاقلارنى چۈشۈرۈش:
pip install opencv-python
pip install urllib3
pip install requests
pip install ultralytics
بۇنى بىر قۇردىن كۆچۈرۈپ CMD كۆزىكىگە چاپلاپ چۈشۈرسەڭلار بولىدۇ ،ئوشۇق چۈشەندۈرۈش ھاجەتسىز.ئۇنڭدىن كىيىن ئەپ مۇھىم بولغان yolo بولىقىنى چۈشىرىمىز ،
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n.pt
بۇ چەتئەلنىڭ تورى شۇڭا بەزى ۋاقىتتا ئىچىلمايدۇ ،شۇڭا مەن مەزمۇن ئاخىرىغا بولاقنىڭ دۆلەت ئىچىدىكى چۈشۈرۈش ئادىرىسىنى يوللاپ قويىمەن،شۇ يەردىن چۈشۈرۋالساڭلا بولىدۇ.
ئالدىنقى قەدەملەرنى مۇۋاپىقىيەتلىك پۈتتۈرگەن بولساڭلا ئەمدى ئاسان يەرىگە كەلدى ، ئاۋال كومپىيۇتىرنىڭ بىر يەرگە ھۆججەت خالتىسىدىن بىرنى قۇرىمىز. ئىسىم ۋە يولى چوقۇم ئىنگىلىزچە بولىشى كىرەك . ئاندىن ماۋۇ بويىچە ھۆججەتلەرنى قۇرىمىز.
fruit --项目总目录
├─datasets --数据文件
│ └─fruit --数据集目录
│ ├─test --训练集目录
│ │ ├─images --训练集图片目录
│ │ └─labels --训练集标签目录
│ ├─train --测试集目录
│ │ ├─images --测试集图片目录
│ │ └─labels --测试集标签目录
│ └─val --验证集目录
│ ├─images --验证集图片目录
│ └─labels --验证集标签目录
datasets نىڭ ئىچىگە يەنە fruit دىگەنمۇندەرىجىنى قۇرىمىز
fruit نىڭ ئىچىگە test ، train ، val دىگەن ئۈچ مۇندەرىجىنى قۇرىمىز
بۇ ئۈچىنىڭ ئىچىگە ئوخشاش images ۋە labels دىگەن مۇندەرىجىنى قۇرىمىز. ئۇھ...
4.1 رەسىم تەييارلاش
ئەمدى رەسمى تىمىغا كىردۇق ھە دىققەت قىلىڭلا ، مۇدىلنى مەشىقلەندۈرۈش ئۈچۈن نۇرغۇن رەسىم كىتىدۇ ،مودىلغا كۆرسەتكەن رەسىم قانچە كۆپ بولسا پەرىق ئىتىش ئىختىدارى شۇنچە ياخشى بولىدۇ لىكىن بىز ئۈگۈنۈش ئۈچۈن ئۇنچىلىك كۆپ رەسىم كەتمەيدۇ ، 50تال ئەتراپىدا بولسا بولدى ، ئاندىن بۇ رەسملەرنى train مۇندەرىجىسىنىڭ ئىچىدىكى images مۇندەرىجىسىنىڭ ئىچىگە سالىمىز. مەسلەن ماۋۇنىڭكىدەك.
4.2 رەسىمگە بەلگە ئۇرۇش
ئاۋال labelimg دىگەن دىتالنى چۈشۈرىمىز (يازما ئاستىدا بار),ھەمدە 查看 دىگەن يەرىنى مۇنداق تەڭشەيمىز
ئاندىن train مۇندەرىجىسىدى رەسىمنى مۇنداق قىلىپ ئاچىمىز
ئاۋال 1 دىگەن يەرنى بىسىپ trainمۇندەرىجىسىدىكى image مۇندەرىجىسىن تاللايمىز.ئاندىن 2 دىگەن يەرنى بىسىپ train مۇندەرىجىسىدىكى labels دىگەن مۇندەرىجىنى تاللايمىز.دىققەت قىلشقا تىگىشلىكى 保存 دىگەن خەتنىڭ ئاستىدىكى چوقۇم yolo دىگەننى تاللىشىمىز كىرەك. مۇنداق چىقىدۇ.
ئەمدى W نى باسساق بەلگە ئۇرىدىغان رامكا چىقىدۇ ،جىسىمنى تاللاپ بولغاندىن كىيىن ئىسىم قوي دەيدۇ ،ئوخشاش جىسىملارغا ئوخشاش ئىسىم قويىمىز،Aنى باسساق ئالدىنقى رەسىم Dنى باسساق كىيىنكى رەسىم چىقىدۇ
ھەممە رەسىمنى شۇنداق بىر تەرەپ قىلىپ چىقىمىز رەسىمنى قۇرۇق قويۇپ ئاتلاپ ئۆتۈپ كىتىشكە بولمايدۇ،ئەگەر بىر رەسىمدىن كۆپ شەكىلنى تاللىماقچى بولساڭلا شۇ رەسىمدە چوقۇم ھەممە شەكىل چىقىشى شەرت ئەمەس ،ئاز بولغاندا بىر شەكىل چىقمىسا txt ھۆججىتىنى ھاسىللىمايدۇ،تۈگىگەندىن كىيىن 保存 نى بىسىۋىتىپ train مۇندەرىجىسىگە كىرىپ قاراپ بىقىڭلا ساقلانغان بولسا دىتالدىن چىقىپ كەتسەڭلا بولىدۇ ، قارماي چىقىپ كىتىپ ساقلانمىغان بولسا باشتىن قىلىسىلەر🙂🙂
ھەربىر رەسىمگە بىر تال ھۆججەت توغرا كىلىدۇ ,classes نى كىيىن ئىشلىتىمىز
5.1 yaml ھۆججىتىنى يىزىش
بۇ ھۆججەت بولسا مەشىقلەندۈرىدىغان دىتالغا رەسىملەرنىڭ قەيەردىلىكىنى دەپ بىرىدىغان ھۆججەت ،بۇنى datasets مۇندەرىجىسىنىڭ ئىچىگە قويىمىز،ئىسمى چوقۇم ئىنگىلىزچە بولىشى كىرەك ،مەسلەن مىنىڭ fruit.yaml. ئاساسلىق شەكلى مۇنداق يىزىلىدۇ .
# Train/val
train: D:\Decktop\Study\YOLO\fruit\datasets\fruit\train\images
val: D:\Decktop\Study\YOLO\fruit\datasets\fruit\val\images
test: D:\Decktop\Study\YOLO\fruit\datasets\fruit\test\images
# Classes
nc: 1 # number of classes
names: ['boom']
nc دىگەن ئىبايامقى classes نىڭ ئىچىدە قانچە تال ئىسىم بار سانىنى يازىمىز ، مەسلەن مەن رەسىمدىن ئۈچ تال جىسىمغا بەلگە ئۇرغان بولسام 3 دەپ يازىمەن،مەن بۇ يەردە بىر تال بومبىنىلا تونۇتماقچى شۇڭا بىرتاللا ئىسىم بار
names دىگەن ئىسىم مەن بومبىغا boom دەم نام قويغان ھەم بىرتاللا قىسىم بار شۇڭا ['boom'] دەپلا يازدىم ئەگەر ئالما ،بانان قاتارلىق بىر نەچچە نەرسىگە بەلگە قويغان بولسام ["apple",'boom',"banana"] مۇشۇنداق ،ئىشقىلىپ نىمدەپ ئىسىم قويغان بولساڭلا شۇنداق يازىسىلەر مۇشۇ شەكىلدە.
5.2 مەشىقلەندۈرۈش
دەپ قويۇشنى ئۇنتۇپ قاپتىمەن test بىلەن val مۇندەرىجىسىنىڭ ئىچىگە train مۇندەرىجىسىنىڭ ئىچىدىن بىر تال رەسىم بىلەن txt ھۆججىتىنى ئىلىپ ماس كەلگەن مۇندەرىجىگە سىلىپ قويۇڭلار ،بۇ ئىككىسى مەشىقلەندۈرگەن بولاقنى سىنايدىغان ھەن نۇمۇر قويغاندا ئىشلىتىدىغان مۇندەرىجە،ھازىر ئۈچۈن بىر تال رەسىم سىلىپ قويساڭلار بولىدۇ ، imagesبىلەن label دىگەن مۇندەرىجىنىڭ ئىچىگە سالغان رەسىم بىلەن txtنىڭ ئىسمى ئوخشاش بولۇشى كىرەك.
بۇ كودنى yolov8_train.py غا يازىمىز ھەمدە تۈرنىڭ غول مۇندەرىجىسگە قويىمز
if __name__ == '__main__':
# 主程序入口
from ultralytics import YOLO
import requests
import urllib3
# 禁用 SSL 验证警告
requests.packages.urllib3.disable_warnings()
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
# 模型和数据路径
model_yaml_path = 'yolov8n.pt'
data_yaml_path = 'datasets\\fruit.yaml'
# 初始化模型
model = YOLO(model=model_yaml_path)
# 训练模型
results = model.train(data=data_yaml_path, epochs=3000)
# 验证模型
model.val()
# 测试模型
request = model('test.png')
print(request)
# 导出模型
model.export(format='torchscript')
كود جىق ئەمەس model_yaml_path = 'yolov8n.pt' دىكى بۇ ھۆججەتنى مەزمۇن ئاخىرىدىن چۈشۈرۋىلىپ غول مۇندەرىجىگە سىلىپ قويىمىزdata_yaml_path ئىبايامقى yaml ھۆججىتىنىڭ ئادىرىسى. request = model('test.png') بىر تال test.png دىەەن رەسىمنى python ھۆججىتى بىلەن تەڭداش مۇندەرىجىگە قويىمىز،سىناق ئۈچۈن ،سىناق قىلمايمە دىسەڭلا # 测试模型 نىڭ كەينىدىكى كودنى يۇيۇۋەتسەڭلا بولىدۇ ، بەربىر كىيىن رەسمى سىناق قىلىمىز.
مۇندەرىجىسى مۇنداق بولىدۇ
epochs=3000 دىگەن مەشىقلەندۈرۈش قىتىم سانى،بۇ كومپىيۇتىرىڭلارنىڭ سەپلىمىسىگە باغلىق مىنىڭ ئىككى سائەتتە مەشىقلەندۈرۈپ بولىدۇ ، يىڭى ئۈگەنگەندە 2000قىتىم بولسا بولىۋىرىدۇ ، بەك مۇرەككەپ رەسىم بولمىسىلا تونىۋىرىدۇ
مەشىقلەندۈرۈش باشلاندى،ئەمدى كومپىيۇتىرنى قويۇپ تىلىفۇن ئويناپ ئولتۇرساڭلارلا بولدى، ئامال بار كوپىيۇتىرنى ئىشلەتمەڭلار ،مەشىقلەندۈرۈش جەريانىدا 显卡 بىلەن CPU نى بەك كۆپ ئىگىلەپ كىتىدۇ ،كومپىيۇتىر قىتىپ قالسا مەشىقلەندۈرگىنىڭلار باشتىن كىتىدۇ
5.3 بولاقنى تەكشۈرۈش
مەشىقلەندۈرۈپ بولغاندىن كىيىن غول مۇندەرىجىدە run دىگەن مۇندەرىجە ھاسىل بولىدۇ.
runs\detect\train\weights
مۇنۇ مۇندەرىجىدە ئىككى ھۆججەت چىقىدۇ بىرسى best.pt,يەنە بىرسى last.pt ، ئالدىدىكىسى نۇمۇرى ئەڭ يۇقۇرى بولغان بولاق ،كەينىدىكىسى بولاقنىڭ ئەڭ ئاخىرىدىكى مەشىقلەندۈرگەن نەتىجىسى، ئىككىسىنىڭ خالىغىنىنى ئىشلەتسەڭلار بولىدۇ.
yolov8_test.py نىڭ ئىچىگە مۇنۇ كودنى يازىمىز
from ultralytics import YOLO
model = YOLO("last.pt")
request = model("test.png", save=True)
توغرا ،،،مۇشۇنداق ئاددى last.pt ھۆججەتنى مەن غول مۇندەرىجىگە كۆچۈرۋالدىم ،سىلەر كۆچۈرمىسەڭلا ئادىرىسىنى توغرا كىرگۈزۈڭلا،ئاندىن yolov8_test.py نى cmd دا يۈرگۈزىمىز
51 مىللى سىكىنۇتتا بىر تەرەپ قىلىپ بولدى دىمەك بىر سىكىنۇتتا تەخمىنەن 20تال رەسىمنى بىر تەرەپ قىلالايدۇ ، تونۇتقان رەسىم قانچە كۆپ بولسا سۈرئىتى شۇنچە تىز بولىدۇ best.pt بولىقىنى ئىشلەتسە سۈرئىتى تىىخىمۇ تىز بولىدۇ.
بىر تەرەپ قىلغان رەسىم ئاستىدىكى مۇندەرىجىگە ساقلىنىدۇ
fruit\runs\detect\predict
ئەگەر يازما ياراپ قالغان بولسا ئىنكاس قالدۇرۇپ قويساڭلار كىلەر قىتىم فىلىمنىڭ ئىچىدىن جىسىم تونۇيدىغان ئىقتىدار بىلەن ئويۇننىڭ ئىچىدىن جىسىم تونۇيدىغان ئىقتىدار توغۇرسىدا يازما يوللايمەن
مەن يازغان تۈر ،ئىچىدە كىرەكلىك ھەممە نەرسە بار ،ئەگەر خالىساڭلا كىيىن ماشىنا ،مۆشۈك ، ئىت ، دەرەخ ، ماشىنا تاختا دىگەندەكلەرنى مەشىقلەندۈرۈپ باقساڭلار بولىدۇ
https://www.123pan.com/s/1yYZVv-endAA.html?提取码:V19F
چۈشەنمىگەن يەرلىرىڭلارنى يازما ئاستىغا ياكى سوئال-جاۋاب ئىستونىغا يوللاپ قويساڭلار بولىدۇ
تامام