이번에는 도커 컨테이너에서 아나콘다(Anaconda) 가상 환경을 만들고,
해당 환경에서 YOLO를 활용한 Object Detection을 테스트하고자 한다.
도커 컨테이너 접속
docker ps -a # 모든 컨테이너 표시
docker start mytorch # mytorch 컨테이너 실행
docker exec -it mytorch /bin/bash # mytorch 컨테이너 접속


이전에 만들었던 컨테이너(mytorch)를 가시 실행 시키고, exec 명령어를 통해 접속한다.
아나콘다 가상 환경 설정
아나콘다를 사용해 컨테이너 안에서 YOLO를 실행할 가상 환경을 설정한다.
conda create -n yolo # yolo 이름의 conda env 생성
conda activate yolo # yolo env 활성화
conda activate yolo 입력 시 "CondaError: Run 'conda init' before 'conda activate'"
에러가 발생 할 수 있다.
conda init을 실행하고 터미널을 닫았다가 다시 열면 정상적으로 작동 한다.

YOLOv11 설치
YOLO 패키지로 ultralytics를 사용.
빠른 시작
pip, conda 또는 Docker를 사용하여 Ultralytics 설치하는 방법을 알아보세요. 단계별 가이드를 따라 YOLO 을 원활하게 설치하려면 자세한 설명이 포함된 단계별 가이드를 참조하세요.
https://docs.ultralytics.com/ko/quickstart/#conda-docker-image
pip install ultralytics # ultralytics 패키지 설치
python # 파이썬 실행
from ultralytics import YOLO # ultralytics YOLO 패키지 import
python에서 ultralytics의 YOLO가 정상적으로 import 되는것을 확인.

Visual Studio Code(VS Code) 연결
터미널 환경에서는 실질적인 개발이 어려움으로 도커 컨테이너 환경을 VS Code에 연결 하고자 함.
1) VS Code > 확장 > Remote Development > 설치

2) 설치 후, 원격 탐색기 Tab > 개발 컨테이너 > 새 창에 첨부


3) VS Code에서 /workspace에 main.py 파일 생성, 터미널에서도 확인


YOLO를 활용한 Object Detection
도커 컨테이너 환경에서 YOLO를 사용하여 Object Detection을 테스트.
1) 적절한 이미지 파일을 Host에서 VSCode의 컨테이너 workspace 아래에 끌어 놓는다

2) ultraytics YOLO 모델을 활용하여 객체 감지
from ultralytics import YOLO
import matplotlib.pyplot as plt
model = YOLO("yolo11n.pt")
model.eval()
results = model("./image.png")
for i, r in enumerate(results):
im_bgr = r.plot()
im_rgb = im_bgr[:,:,::-1]
plt.imshow(im_rgb)
plt.savefig('./result_image.png')
3) 감지 결과
