ROBOFLOW - latih & uji dengan ular sawa
Roboflow ialah platform untuk menganotasi imej untuk digunakan dalam AI pengesanan objek.
Saya menggunakan platform ini untuk C2SMR c2smr.fr, persatuan penglihatan komputer saya untuk menyelamat maritim.
Dalam artikel ini saya menunjukkan kepada anda cara menggunakan platform ini dan melatih model anda dengan python.
Anda boleh mendapatkan lebih banyak kod sampel pada github saya : https://github.com/C2SMR/detector
I - Set Data
Untuk membuat set data anda, pergi ke https://app.roboflow.com/ dan mula menganotasi imej anda seperti yang ditunjukkan dalam imej berikut.
Dalam contoh ini, saya melencongkan semua perenang untuk meramalkan kedudukan mereka dalam imej masa hadapan.
Untuk mendapatkan hasil yang baik, pangkas semua perenang dan letakkan kotak pembatas tepat selepas objek untuk mengelilinginya dengan betul.
Anda sudah boleh menggunakan set data roboflow awam, untuk semakan ini https://universe.roboflow.com/
II - Latihan
Untuk peringkat latihan, anda boleh menggunakan roboflow terus, tetapi pada kali ketiga anda perlu membayar, itulah sebabnya saya menunjukkan kepada anda cara melakukannya dengan komputer riba anda.
Langkah pertama ialah mengimport set data anda. Untuk melakukan ini, anda boleh mengimport pustaka Roboflow.
pip install roboflow
Untuk mencipta model, anda perlu menggunakan algoritma YOLO, yang boleh anda import dengan pustaka ultralytics.
pip install ultralytics
Dalam skrip saya, saya menggunakan arahan berikut :
py train.py api-key project-workspace project-name project-version nb-epoch size_model
Anda mesti mendapatkan :
- kunci akses
- ruang kerja
- nama projek roboflow
- versi set data projek
- bilangan zaman untuk melatih model
- saiz rangkaian saraf
Pada mulanya, skrip memuat turun yolov8-obb.pt, berat yolo lalai dengan data pra-senaman, untuk memudahkan latihan.
import sys import os import random from roboflow import Roboflow from ultralytics import YOLO import yaml import time class Main: rf: Roboflow project: object dataset: object model: object results: object model_size: str def __init__(self): self.model_size = sys.argv[6] self.import_dataset() self.train() def import_dataset(self): self.rf = Roboflow(api_key=sys.argv[1]) self.project = self.rf.workspace(sys.argv[2]).project(sys.argv[3]) self.dataset = self.project.version(sys.argv[4]).download("yolov8-obb") with open(f'{self.dataset.location}/data.yaml', 'r') as file: data = yaml.safe_load(file) data['path'] = self.dataset.location with open(f'{self.dataset.location}/data.yaml', 'w') as file: yaml.dump(data, file, sort_keys=False) def train(self): list_of_models = ["n", "s", "m", "l", "x"] if self.model_size != "ALL" and self.model_size in list_of_models: self.model = YOLO(f"yolov8{self.model_size}-obb.pt") self.results = self.model.train(data=f"{self.dataset.location}/" f"yolov8-obb.yaml", epochs=int(sys.argv[5]), imgsz=640) elif self.model_size == "ALL": for model_size in list_of_models: self.model = YOLO(f"yolov8{model_size}.pt") self.results = self.model.train(data=f"{self.dataset.location}" f"/yolov8-obb.yaml", epochs=int(sys.argv[5]), imgsz=640) else: print("Invalid model size") if __name__ == '__main__': Main()
III - Paparan
Selepas melatih model, anda mendapat fail best.py dan last.py, yang sepadan dengan berat.
Dengan pustaka ultralytics, anda juga boleh mengimport YOLO dan memuatkan berat anda dan kemudian video ujian anda.
Dalam contoh ini, saya menggunakan fungsi penjejakan untuk mendapatkan ID bagi setiap perenang.
import cv2 from ultralytics import YOLO import sys def main(): cap = cv2.VideoCapture(sys.argv[1]) model = YOLO(sys.argv[2]) while True: ret, frame = cap.read() results = model.track(frame, persist=True) res_plotted = results[0].plot() cv2.imshow("frame", res_plotted) if cv2.waitKey(1) == 27: break cap.release() cv2.destroyAllWindows() if __name__ == "__main__": main()
Untuk menganalisis ramalan, anda boleh mendapatkan model json seperti berikut.
results = model.track(frame, persist=True) results_json = json.loads(results[0].tojson())
Atas ialah kandungan terperinci ROBOFLOW - latih & uji dengan ular sawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

Pythonlistsarepartofthestandardlibrary, sementara

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.
