본문 바로가기

Python and Data

(14)
Permission class와 커스터마이징 Django에서 사용할 수 있는 permissions 와 상속받아서 커스터마이징하는 방법 정리 0. Permission의 이유로그인 한 사용자만 게시글을 작성할 수 있다던가모두가 글을 작성할 수 있다던가관리자만 글을 삭제할 수 있다던가... 작성한 사용자만 게시글을 볼 수 있다던가... 1. DRF Built-in permission classAllowAny모두 허용(인증같은거 필요 없음)IsAuthenticated인증된 사용자만 접근 가능IsAdminUseruser_customuser의 is_staff=True인 사용자만 접근 가능IsAuthenticatedOrReadOnly인증된 사용자는 쓰기 가능, 비인증 사용자는 읽기만 가능DjangoModelPermissionsModel에서 만든 권한에 따라D..
ORM Query ORM(Object-relational mapping) Django에서 DB에 접근하는 방식이다. sql을 직접 작성해서 excute 하는 방법이 존재하지만 ex) import sqlite3 as sqlconn = sql.connect("db_name").cursorconn.execute("SQL") 이 방식보다는 Django류를 쓴다면 ORM을 사용하는것이 훨씬 편하다. models.py에 다음과 같은 모델이 정의되어 있다고 가정하면 class OriginImage(models.Model): user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='ori..
Pytorch로 모델 만들기 간단 정리(CNN-V) 캐글 하다가 시간 많이 남아서 기본적으로 이렇게 하면 모델 만들어진다 싶은 코드를 정리해두면 여기저기 가져다 쓸일이 많은것 같아서 한번 남긴다. CNN를 위한 코드이다. 큰 틀은 별로 안바뀌고 여기서 모델, 전처리, 기타 하이퍼파라미터 정도만 바꾸면 꽤나 다용도로 사용할 수 있는 코드라고 생각한다. 기본적으로 이정도 라이브러리는 넣어놓고 시작한다. 자주 쓸 뿐더러 배포할 프로젝트가 아니기 때문에 없는것 보단 그냥 한번에 넣어 놓는게 좋은것 같다. # Data handling import pandas as pd import numpy as np # Data visualization import matplotlib.pyplot as plt import seaborn as sns import cv2 from ..
(CV-7)Various Image Interpolation 오랜만에 쓰는 CV다. 웹개발을 다시 하고 있자니 시간도 힘도 없어서 한동안 미뤄뒀는데 하나하나 잊혀지는게 싫어 다시 손을 들었다. 요즘은 부쩍 내가 뭘 좋아하고, 뭘 하고싶은지에 대한 상념이 많아지는 시기인것 같다. 확신이 있다고 생각했는데 생각이 많아진다. 쩝... 작설하고 다시 본론으로 들어가보자. Concept 아래의 그래프를 하나 살펴보자. 점이 찍힌 곳이 원래는 한곳에 밀집 되어있는 이미지였다가, 이미지를 확대한 것이라고 상상해보면 그 빈(지금은 선으로 표현되어 있는 곳들)곳을 채우는 방법에 대한 고민이다. 보간(간격의 보완)의 문제다. 아래 그래프에서 두꺼운 까만 점이 원본 이미지(혹은 원본 데이터)라고 했을때 아주 큰 스케일에서는 빈 공간이 보이지 않더라도 확대를 하면 할수록 빈공간이 잘 ..
(Python-Django)Django 빠른 습득기-0 이건 진빼이 생존형 Django 블로그 빅리더에서(나중에 끝나면 블로그 쓸거다) 프로젝트 하는데 뭔가 아웃풋을 만들 프레임워크가 필요했고 원래 하던 JS 하자니 뭔가 지루했고 그래서 나도 새로운것좀 써보자 하는 생각에 선택했다. 결론적으로 완벽한 결과를 만들진 못했지만 그래도 나처럼 일단 얹을 곳이 필요한 거라면 도움이 되지 않을까 생각한다. 나는 두군데를 참고를 많이 했다. https://tutorial.djangogirls.org/ko/ 들어가며 · HonKit 1차 : 2015. 10. 1. 이수진, 함기훈, 박제권, 조혜선, 정광윤, 임정훈, 문지영, 김휘경, 송석리, 여형석, 심혜민 tutorial.djangogirls.org 이건 가장 처음에 봤던 글인데 처음할때는 그냥 이거 쭉 따라했다. 막..
(CV-6)image transform and DCT-2 and Harr, Gabor Transform Concept 이걸 왜하는지에 대한 목적을 한번 살펴보자. 아래의 과정을 거쳐 데이터를 압축했다가. 잘 전달해서 가능한한 손실없이 풀어보는데 그 의의가 있다. 우리는 그 과정중에 있으며 이제 DCT하나 했다. 이제 데이터의 양을 알고리즘에 대입해 줄이는 방법에 대해 생각해본다. Quantization DCT 이후 양자화 방법에 대해 생각해보자. 목적은 데이터의 종류를 획기적으로 줄이는데 있다. Zigzag Scan 내가 전부터 쓰긴 했지만 언급하지 않았던 내용이 있었다. DC는 저주파 성분, AC는 고주파 성분이다. Zigzag Scan은 DC성분과 AC성분으로 이미지를 분리하고 RLE(Run length Encoding)을 통해 각각의 성분을 따라가며 데이터의 양을 줄일 수 있다. 다음의 자료를 보자...
(CV-5)image transform and DCT-DiscreteCosineTransform-1 이제 화질구지를 탈출했다. 근데 며칠전에 친구들이랑 얘기를 해보니까 화질구지를 모르는 사람이 많더라 그래서 짤하나 방출 간단한 상황설명은 2G 피처폰 시절(롤리팝폰도 나오기 전) 카메라 화질이 몹시 안좋았는데 첫 답변자가 화질이 구리다는 말을 띄어 쓰기 안하고 써서 그 뒷사람들이 아는척 하려고 하다가 나온 짤이다...(나만 웃겨요..?) Concept 지금까지 사용했던 이미지의 각 픽셀의 색을 다른 신호로 바꾸는 것을 의미한다. 주파수로 바꿔서 송수신을 할 수도 있고 또다른 행렬로 바꿀 수도 있다. 데이터의 양을 줄이고 패턴을 분석하는데 그 의의가 있다. DCT를 통한 JPEG압축, Harr Transform, Gabor Transform등이 있다. 각각의 Transform algorithm을 배우기 전..
(CV-4)Edge Detection and Canny Edge Detector(화질구지 살리기 v3) 점점 어려워지고 감당 안된다... 씹어먹고 글쓰는게 생각보다 어렵고 에너지가 많이 드네여... Concept Edge detection은 말 그대로 테두리를 따는 방법이다. 조금만 생각해보면 아이디어가 하나 떠오르는데 고주파 지점들을 잘 찾으면 거기가 테두리일 확률이 높을 것이라는 생각이 들 것이다. 어떻게 하면 그 부분을 잘 찾을 수 있을지 생각해보자. 그렇다면 어떻게 하면 테두리 값을 찾아 낼 수 있을까? 우리는 영상 데이터 자체의 변화를 원하는 것이 아니기 때문에 모든원소의 값 = 0이 유지되게 원소 값을 만들어 줘야한다. 필터는 저번 포스팅에서 도장찍는거랑 똑같다고 계~~속 얘기했으니까 이제 그 설명은 안한다. 상상해보자 세로선으로 긴 선이 있다(Y축과 평행하게) 그럼 1~4중 어떤 방향으로 필터..