yolov8

BABY CAT·2023년 7월 18일
0

ai

목록 보기
12/12

#코드주석참고 ultraltics는 pip나 깃클론>requi설치로

ultralytics

git clone https://github.com/ultralytics/ultralytics

%cd /content/ultralytics/

!pip install -r requirements.txt

/ pip install -e .

(ub req scipy주석)


/ pip install ultralytics


cd dataset

curl -L "https://public.roboflow.com/ds/BloPJqtduR?key=63MG0YMXyE" > roboflow.zip; unzip roboflow.zip; rm roboflow.zip




import os

 

os.environ['KMP_DUPLICATE_LIB_OK']='True'





 

dataset_dir = "./dataset"

 

if not os.path.exists(dataset_dir):

    os.makedirs(dataset_dir)

     



import os

import shutil

 

source_image_dir = "C:\\Users\\10H12M510C\\Desktop\\yolov8\\yolov8_fire_forest\\dataset\\test\\images"



source_label_dir = "C:\\Users\\10H12M510C\Desktop\yolov8\yolov8_fire_forest\dataset\\test\labels"

 

target_image_dir = ".C:\\Users\\10H12M510C\\Desktop\\yolov8\\yolov8_fire_forest\\dataset\\train\images"

target_label_dir = "C:\\Users\\10H12M510C\\Desktop\\yolov8\\yolov8_fire_forest\\dataset\\test\labels"



 

for filename in os.listdir(source_image_dir):

    source_file = os.path.join(source_image_dir, filename)

    target_file = os.path.join(target_image_dir, filename)

    shutil.move(source_file, target_file)

 

for filename in os.listdir(source_label_dir):

    source_file = os.path.join(source_label_dir, filename)

    target_file = os.path.join(target_label_dir, filename)

    shutil.move(source_file, target_file)



from glob import glob



train_img_list = glob('C:\\Users\\10H12M510C\\Desktop\\yolov8\\yolov8_fire_forest\dataset\\train\\images\\*.jpg')

val_img_list = glob('C:\\Users\\10H12M510C\\Desktop\\yolov8\\yolov8_fire_forest\dataset\\valid\\images\\*.jpg')



print(len(train_img_list), len(val_img_list))



with open('./dataset/train.txt', 'w') as f:

  f.write('\n'.join(train_img_list) + '\n')



with open('./dataset/val.txt', 'w') as f:

  f.write('\n'.join(val_img_list) + '\n')

  

import yaml



with open('./dataset/data.yaml', 'r') as f:

  data = yaml.safe_load(f)



print(data)



data['train'] = 'C:\\Users\\10H12M510C\\Desktop\yolov8\yolov8_fire_forest\dataset\\train.txt'

data['val'] = 'C:\\Users\\10H12M510C\\Desktop\yolov8\yolov8_fire_forest\dataset\\val.txt'





with open('./dataset/data.yaml', 'w') as f:

  yaml.dump(data, f)



print(data)





import ultralytics



ultralytics.checks()





from ultralytics.yolo.engine.model import YOLO

from ultralytics.vit.rtdetr import model

from ultralytics import yolo



model = YOLO('yolov8n.pt')







model.train(data = './dataset/data.yaml', epochs = 300, patience=10, batch=32, imgsz=416)



#model('https://ultralytics.com/images/bus.jpg')  # predict on an image

아두이노 (x yolov8)

const int LED_PIN_1 = 10; // First LED pin

const int LED_PIN_2 = 13; // Second LED pin

const int BUZZER_PIN = 8; // Active buzzer pin



void setup() {

 pinMode(LED_PIN_1, OUTPUT);

 pinMode(LED_PIN_2, OUTPUT);

 pinMode(BUZZER_PIN, OUTPUT);

 Serial.begin(9600);

}



void loop() {

 if (Serial.available()) {

  String message = Serial.readStringUntil('\n');

  message.trim();



  if (message == "pistol detected") {

   // Blink the LEDs alternately

   for (int i = 0; i < 1; i++) {

    digitalWrite(LED_PIN_1, HIGH);

    digitalWrite(LED_PIN_2, LOW);

    digitalWrite(BUZZER_PIN, HIGH);

    delay(500);

    digitalWrite(LED_PIN_1, LOW);

    digitalWrite(LED_PIN_2, HIGH);

    digitalWrite(BUZZER_PIN, LOW);

    delay(500);

   }

   digitalWrite(LED_PIN_1, LOW);

   digitalWrite(LED_PIN_2, LOW);

   digitalWrite(BUZZER_PIN, LOW);

  }

 }

}

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ+서보

#include <Servo.h>  //서보모터 라이브러리 include

 

Servo microServo;  //서보모터 객체 선언

const int servoPin = 7;  //서보모터 제어핀 할당









const int LED_PIN_1 = 10; // First LED pin



const int LED_PIN_2 = 13; // Second LED pin



const int BUZZER_PIN = 8; // Active buzzer pin







void setup() {



 pinMode(LED_PIN_1, OUTPUT);



 pinMode(LED_PIN_2, OUTPUT);



 pinMode(BUZZER_PIN, OUTPUT);



 Serial.begin(9600);



   

  Serial.println("hello arduino!");

  microServo.attach(servoPin);  //서보모터 초기화

   



}







void loop() {



int angle;  //각도 변수 선언

//angle = 0; angle < 170



 if (Serial.available()) {



 String message = Serial.readStringUntil('\n');



 message.trim();







 if (message == "pistol detected") {

  microServo.write(20);

  delay(1000); 

  microServo.write(130);

  // Blink the LEDs alternately



  for (int i = 0; i < 4; i++) {



  digitalWrite(LED_PIN_1, HIGH);



  digitalWrite(LED_PIN_2, LOW);



  digitalWrite(BUZZER_PIN, HIGH);



  delay(500);



  digitalWrite(LED_PIN_1, LOW);



  digitalWrite(LED_PIN_2, HIGH);



  digitalWrite(BUZZER_PIN, LOW);



  delay(500);



  }



  digitalWrite(LED_PIN_1, LOW);



  digitalWrite(LED_PIN_2, LOW);



  digitalWrite(BUZZER_PIN, LOW);



 }



 }



}

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

소중한 정보 잘 봤습니다!

답글 달기