Ultralytics YOLO27:
Get Started

Ultralytics YOLO26을 활용한 보안 경보 시스템 프로젝트#

AI-powered security alarm system with object detection

Ultralytics YOLO26을 활용하는 보안 경보 시스템 프로젝트는 고급 컴퓨터 비전 기능을 통합하여 보안 조치를 강화합니다. Ultralytics가 개발한 YOLO26은 실시간 객체 감지를 제공하므로 시스템이 잠재적인 보안 위협을 신속하게 식별하고 대응할 수 있습니다. 이 프로젝트는 다음과 같은 여러 이점을 제공합니다.

  • 실시간 감지: YOLO26의 효율성을 통해 보안 경보 시스템은 보안 사고를 실시간으로 감지하고 대응하여 대응 시간을 최소화할 수 있습니다.
  • 정확도: YOLO26은 객체 감지 정확도가 뛰어난 것으로 알려져 있어 오탐을 줄이고 보안 경보 시스템의 신뢰성을 높입니다.
  • 통합 기능: 이 프로젝트는 기존 보안 인프라에 원활하게 통합되어 지능형 감시 기능을 한층 강화할 수 있습니다.


시청: Ultralytics YOLO26 및 Solutions를 사용한 보안 경보 시스템 객체 감지

YOLO26으로 보안 알림 전송하기#

SecurityAlarm 솔루션은 동영상 피드의 객체를 추적하며, 감지 수가 records 임계값에 도달하는 즉시 주석이 추가된 이미지가 첨부된 이메일 알림을 한 번 전송합니다. 앱 비밀번호로 Gmail 계정을 인증한 다음 소스에 솔루션을 실행하세요.

앱 비밀번호 필요

앱 비밀번호 생성기로 이동해 "security project"와 같은 앱 이름을 지정하고 16자 비밀번호를 발급받으세요. 이 비밀번호를 복사하여 아래 코드의 password 필드에 붙여넣으세요.

Ultralytics YOLO를 활용한 보안 경보 시스템
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# 비디오 작성기
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("security_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

from_email = "abc@gmail.com"  # 발신자 이메일 주소
password = "---- ---- ---- ----"  # https://myaccount.google.com/apppasswords에서 생성한 16자 앱 비밀번호
to_email = "xyz@gmail.com"  # 수신자 이메일 주소

# 보안 경보 객체 초기화
securityalarm = solutions.SecurityAlarm(
    show=True,  # 출력을 표시합니다.
    model="yolo26n.pt",  # 예: yolo26s.pt, yolo26m.pt
    records=1,  # 이메일을 보낼 총 감지 수
)

securityalarm.authenticate(from_email, password, to_email)  # 이메일 서버 인증

# 비디오 처리
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = securityalarm(im0)

    # print(results)  # 출력에 액세스

    video_writer.write(results.plot_im)  # 처리된 프레임을 저장합니다.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # 열려 있는 모든 창 닫기

코드를 실행하면 객체가 하나라도 감지된 경우 이메일 알림을 한 번 받게 됩니다. 알림은 즉시 전송되며 반복해서 전송되지는 않습니다. 프로젝트 요구 사항에 맞게 코드를 사용자 지정할 수 있습니다.

수신 이메일 예시#

Security alert email notification example

SecurityAlarm 인수#

다음은 SecurityAlarm 인수 표입니다:

인수유형기본값설명
modelstrNoneUltralytics YOLO 모델 파일의 경로입니다.
recordsint5보안 경보 시스템에서 이메일을 트리거하는 총 감지 횟수입니다.
line_widthint2Solution에서 그리는 상자, 키포인트 및 개수 표시의 선 두께입니다.
verboseboolTrue프레임별 입력 형태, 클래스 개수 및 처리 속도 로그를 활성화합니다. 추적 호출 자체는 항상 로그를 출력하지 않습니다.

SecurityAlarm 솔루션은 다양한 track 매개변수를 지원합니다.

인수유형기본값설명
trackerstr'tracktrack.yaml'사용할 추적 알고리즘을 지정합니다. 기본 제공 옵션: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25탐지에 대한 신뢰도 임계값을 설정합니다. 값을 낮추면 추적할 수 있는 객체가 늘어나지만 오탐이 포함될 수 있습니다.
ioufloat0.7중복 탐지를 필터링하기 위한 교집합 대비 합집합 (IoU) 임계값을 설정합니다.
classeslistNone클래스 인덱스로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3]은 지정된 클래스만 추적합니다.
devicestrNone추론에 사용할 장치를 지정합니다(예: cpu, cuda:0 또는 0). 사용자는 모델 실행에 사용할 CPU, 특정 GPU 또는 기타 연산 장치를 선택할 수 있습니다.
imgszint or tuple640추론 대상 이미지 크기입니다. 정사각형을 나타내는 정수 또는 (height, width) 쌍을 지정합니다. 모델 stride에 맞춰 형태가 조정됩니다.
max_detint300추적 전에 프레임별로 유지할 최대 탐지 수를 지정하여 밀집된 장면에서 솔루션이 처리하는 객체 수를 제한합니다.
quantizeint or strNone추론 정밀도: CPU 이외의 환경에서 PyTorch 및 TorchScript 모델은 16(FP16) 또는 32/unset(FP32)을 사용하며, 다른 형식은 아티팩트와 런타임이 선택하는 정밀도를 사용합니다. 더 이상 사용되지 않는 half 인수를 대체합니다.

또한 다음과 같은 시각화 설정을 사용할 수 있습니다.

인수유형기본값설명
showboolFalseTrue이면 주석이 추가된 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 얻는 데 유용합니다.
show_confboolTrue각 감지 결과의 레이블 옆에 신뢰도 점수를 표시합니다. 각 감지 결과에 대한 모델의 확신도를 파악할 수 있습니다.
show_labelsboolTrue시각화 출력에 각 감지 결과의 레이블을 표시합니다. 감지된 객체를 즉시 파악할 수 있습니다.

작동 방식#

Security Alarm System은 객체 추적을 사용하여 비디오 피드를 모니터링하고 잠재적인 보안 위협을 감지합니다. 프레임에서 감지된 객체 수가 지정된 임계값(records 매개변수로 설정)에 도달하면 감지된 객체가 표시된 이미지 첨부 파일과 함께 이메일 알림을 자동으로 전송합니다.

시스템은 다음 메서드를 제공하는 SecurityAlarm 클래스를 활용합니다.

  1. 프레임을 처리하고 객체 감지 결과를 추출합니다.
  2. 감지된 객체 주위에 바운딩 박스를 표시하여 프레임에 주석을 추가합니다.
  3. 감지 임계값에 도달하면 이메일 알림을 전송합니다.

이 구현은 감지된 객체를 즉시 알려주는 것이 중요한 가정 보안, 소매점 감시 및 기타 모니터링 애플리케이션에 적합합니다.

자주 묻는 질문#

  • Ultralytics YOLO26은 높은 정확도의 실시간 객체 감지를 제공하여 보안 알람 시스템을 향상합니다. 고급 알고리즘으로 오탐을 크게 줄여 시스템이 실제 위협에만 대응하도록 합니다. 향상된 신뢰성을 기존 보안 인프라에 원활하게 통합하여 전반적인 감시 품질을 개선할 수 있습니다.

  • 예. Ultralytics YOLO26은 기존 보안 인프라에 원활하게 통합할 수 있습니다. 시스템은 다양한 모드를 지원하고 사용자 지정의 유연성을 제공하므로 고급 객체 감지 기능으로 기존 설정을 향상할 수 있습니다. 프로젝트에 YOLO26을 통합하는 자세한 방법은 통합 섹션을 참조하세요.

  • 일반적인 설정에서 Ultralytics YOLO26을 실행하려면 보통 약 5GB의 여유 디스크 공간이 필요합니다. 여기에는 YOLO26 모델과 추가 종속성을 저장할 공간이 포함됩니다. 클라우드 기반 솔루션인 Ultralytics Platform은 효율적인 프로젝트 관리와 데이터셋 처리를 제공하여 저장 공간 요구량을 최적화할 수 있습니다. 확장된 저장 공간을 비롯한 향상된 기능에 대해서는 Pro Plan에 대해 자세히 알아보세요.

  • Ultralytics YOLO26은 실시간 감지 기능과 높은 정확도를 바탕으로 Faster R-CNN이나 SSD와 같은 모델보다 뛰어난 성능을 제공합니다. 고유한 아키텍처를 통해 정밀도를 저하시키지 않고 이미지를 훨씬 빠르게 처리하므로 보안 알람 시스템과 같이 시간에 민감한 애플리케이션에 적합합니다. 객체 감지 모델을 종합적으로 비교하려면 가이드를 참조하세요.

  • 오탐을 줄이려면 다양한 이미지가 포함되고 주석이 잘 달린 데이터셋으로 Ultralytics YOLO26 모델을 충분히 학습해야 합니다. 하이퍼파라미터를 미세 조정하고 새 데이터로 모델을 정기적으로 업데이트하면 감지 정확도를 크게 향상할 수 있습니다. 자세한 하이퍼파라미터 튜닝 기법은 하이퍼파라미터 튜닝 가이드에서 확인할 수 있습니다.

댓글