#코드주석참고 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
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);
}
}
}
소중한 정보 잘 봤습니다!