본문 바로가기
DEV/Web 개발

Web 개발 :: 파이썬 django 인스타그램 코드 리뷰, 머신러닝_TIL#29

by 올커 2022. 10. 13.

■ JITHub 개발일지 29일차

□  TIL(Today I Learned) ::

파이썬 알고리즘///

1. 인스타그램 클론코딩 코드 리뷰 (USER 관리 기능)

 - urls.py에서 아래와 같이 app_name을 지정하면 템플릿 작성시 아래 캡쳐부분과 같이 사용할 수 있다.

from django.urls import path
from . import views

app_name = 'users'          # 템플릿 작성할 때 사용하기 위해 app_name 지정

urlpatterns = [
    path('sign-in/', views.sign_in_view, name = 'sign-in'),
    path('sign-up/', views.sign_up_view, name = 'sign-up'),
    path('logout/', views.logout, name = 'logout')
]

 - admin.py에서 아래와 같이 등록해줌으로써 admin 화면에서 모델을 확인할 수 있게 된다.

   이 부분에서 register에서 UserAdmin을 추가한 부분은 추가 확인이 필요

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import UserModel

# Register your models here.
admin.site.register(UserModel, UserAdmin)

 

2. 머신러닝

사물인식 학습 프로세스

 · 모델 생성

 · 데이터 확보

 · 데이터 라벨링

 · 학습

 

 - Yolov5와 OpenCV를 활용하여 이미지 처리를 구현

import torch
import cv2
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
imgs = ['https://ultralytics.com/images/zidane.jpg']  # batch of images

results = model(imgs)

results.save()

 

import torch
import cv2
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
imgs = ['https://ultralytics.com/images/zidane.jpg']  # batch of images

results = model(imgs)

print(results.xyxy[0], results.xyxy[0][0][0].item())  # img1 predictions (tensor)
print(results.pandas().xyxy[0])  # img1 predictions (pandas)

tmp_img = cv2.imread('zidane.jpg')
cv2.rectangle(tmp_img, (int(results.xyxy[0][0][0].item()), int(results.xyxy[0][0][1].item())), (int(results.xyxy[0][0][2].item()), int(results.xyxy[0][0][3].item())), (255,255,255))
cv2.imwrite('result.png', tmp_img)

 

import torch
import cv2
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)

img = cv2.imread('zidane.jpg')
results = model(img)
results.save()

result = results.pandas().xyxy[0].to_numpy()
result = [item for item in result if item[6]=='person']

tmp_img = cv2.imread('zidane.jpg')
print(tmp_img.shape)
cropped = tmp_img[int(result[0][1]):int(result[0][3]), int(result[0][0]):int(result[0][2])]
print(cropped.shape)
cv2.imwrite('result2.png', cropped)
cv2.rectangle(tmp_img, (int(results.xyxy[0][0][0].item()), int(results.xyxy[0][0][1].item())), (int(results.xyxy[0][0][2].item()), int(results.xyxy[0][0][3].item())), (255,255,255))
cv2.imwrite('result.png', tmp_img)

 


□  TIF(Today I Felt) ::

  - django Post 기능도 구현할 수 있도록 준비 필요

  - 새로운 머신러닝 프로젝트에서 팀장이 되었다. 모두가 만족할 수 있는 팀 + 프로젝트가 되었으면 좋겠다.

 

반응형

댓글