2020년 12월 27일 일요일

[스파르타 코딩클럽] 이미지처리로 배우는 딥러닝 회고



1. 
수강 목적: 스파르타 온라인 수업을 신청한 이유
스파르타 코딩클럽의 장점은 쉽고 재밌다는 데에 있는 것 같다. 딥러닝에 대해서는 이론적으로만 접해봤지, 코딩을 한 것은 먼 옛날이고 최근에 나오는 내용은 전혀 모르고 있었던 터라, 쉽고 재미있게 다시 접근해보고자 수업을 신청하게 되었다. 

2. 배운 점/잘한 점: 많이 배웠고 스스로 잘했다고 생각하시는 점을 적어주세요!
이미지 처리 부분에 대한 내용과 거기에 사용되는 딥러닝 모델들을 활용하는 것은 확실히 배운것 같다. 
 
3. 보완/발전하고 싶은 점: 수강하는 과정에서 스스로를 보완하고 발전하고 싶은 점을 적어주세요
더 나아가 자연어 처리 관련된 모델들도 한 번 실행 해 보고 싶다. 

4. 앞으로의 계획: 이번 수업이 인생 마지막 코딩..아니시죠? 앞으로의 계획과 목표를 적어주세요 :-) 

확실히 이번 스파르타 온라인 강의를 신청한 목적은 이룬 것 같다. 이미지처리에 국한되긴 했지만 다양한 모델들을 간단히 처리하고 얼굴인식, 사진 컬러/해상도 복원하는 기능들을 사용해 봤다. 

아쉬운 점은 이곳에 사용된 모델들이나 기술들에 대해서는 그냥 소개만 하고 넘어갔다는 점이다. 아마 강의의 목적이 쉽고 빠르게 접해보도록 하는 것이기 때문에 어쩔 수 없는 것 같다. 이런 아쉬운 점은 대신 앞부분에 이론/기술적 설명을 해주는 강의(꿀팁강의)가 따로 추가되는 식으로 보완해 주는 것 같았다.

궁금한 점은 이렇게 강의에 소개된 모델들이 정말 free로 사용가능한 것인지, 이런 다양한 model 파일들을 또 어디서 찾아볼 수 있을지. 이런 것들은 차차 알아봐 가면 좋겠다.

5주동안 약 3~4시간 정도 투자해가면서 배운 터라 실력이 깊지 않고, 숙제도 거의 강의에 나온 내용들을 따라한거라 좀 밋밋하긴 하다. 꿀팁영상에서 나온 내용들을 다시 한 번 보고, 다른 모델들이 어떻게 사용되고 있는지 현재 트렌드를 읽는 수준까지 가는것을 목표로 공부해 봐야겠다.

2020년에 찍은 사진중 마음에 드는 사진을 이번에 배운 내용을 토대로 변환해 봤는데 결과가 썩 맘에 든다. 생각보다 재미있었고 유용한 강의였어서 만족하는 중이다. 

어렵게만 느껴지던 딥러닝을 이렇게 쉽고 재밌게 구성하다니.. 이런거는 스파르타 코딩클럽의 장점인 것 같다. (스파르타코딩클럽과 강의를 준비해주신 튜터분들꼐 감사드립니다.)

2020-12-27. 마치며.

2020년 12월 22일 화요일

[Windows 10] CMD Command INFO

  • Command : echo %Path Name%
    • Description : Show environment variables (paths) which are set for the Path Name
    • Example : echo %PYTHONPAT%
      This example command shows the environment variables (paths) of PYTHONPATH

2020년 12월 18일 금요일

VSCode완전 삭제 / Python 완전 삭제

원인 알수 없음

VSCode 삭제 후 재설치 --> Fail

VSCode / Anaconda 삭제 후 재설치 --> Fail


VSCode / Anaconda의 문제는 아닌것 같음

기본 환경에 설치되어있는데 python 제거 후 시도 

이후에도 안될 경우 포맷 후 windows재설치 시도


VSCode 완전 삭제 

https://medium.com/@indexx/vs-code-%EC%99%84%EC%A0%84-%EC%82%AD%EC%A0%9C-9cdc15aeba08

파이썬 삭제

https://redcow77.tistory.com/202

Anaconda 완전 삭제

https://copycoding.tistory.com/61

가상환경 list확인

conda info --envs


설치 버전



[Python 3.8.5] Tensorflow 설치 후 Runtime Error (Numpy installation fails to pass a sanity check)

문제 상황 : 

 Tensorflow 설치 후 정상 작동 확인 (version 확인)과정에서 아래와 같은 에러 발생


해결 과정 (링크 참조): 

https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html?page=1&pageSize=10&sort=votes&type=problem

  • pip list 확인시 numpy version 이 1.19.4 임을 확인

  • 에러 메시지에 나온 link에 제시된 solution 적용 (numpy 1.19.3 설치)
    pip uninstall numpy
    pip install numpy==1.19.3
  • 정상 작동 확인




[Python] Deeplearning, OpenCV, Face Mask Detector 네트워크 구축 시 네트워크 실행 안되는 현상

문제

아래 코드에서 'deploy.prototxt' 파일로 dnn모델을 사용하여 마스크 착용 여부를 판별하는 프로그램을 연습하는 도중 결과 image가 나타나지 않는 상황이 발생.


확인사항 

  • 사양 확인 : 문제 없음
  • 다른 model을 사용하는 경우는 문제없이 결과 파일이 나타남.


  • 문제되는 코드를 알아보고자 주석처리를 통해 이미지가 나타나는지 확인해 본 결과 forward()과정에서 문제가 있어 보임.
조치사항

1. cv, numpy 등을 uninstall후 재설치 해보았으나 실행되지 않음.
2. Jupyter Notebook에서 실행시 에러 발생
3. colab 환경에서 실행시 문제없이 실행 됨.
4. VScode, Anaconda 재설치 (확인 중)

결과

원인 알수 없음

VSCode 삭제 후 재설치 --> Fail

VSCode / Anaconda 삭제 후 재설치 --> Fail

VSCode / Anaconda의 문제는 아닌것 같음


기본 환경에 설치되어있는데 python 제거 후 시도 --> Fail

(포맷 후 windows재설치 시도 예정)...

** 다른 modeling은 정상 작동하는데 얼굴 인식용 deploy.proto 저 모델만 그런 것으로 아직까지는 추정

관련 출처

Sparta Codingclub 강의 중

https://www.pyimagesearch.com/2020/05/04/covid-19-face-mask-detector-with-opencv-keras-tensorflow-and-deep-learning/

VSCode 완전 삭제 

https://medium.com/@indexx/vs-code-%EC%99%84%EC%A0%84-%EC%82%AD%EC%A0%9C-9cdc15aeba08

파이썬 삭제

https://redcow77.tistory.com/202

Anaconda 완전 삭제

https://copycoding.tistory.com/61


2020년 11월 29일 일요일

[Python 3.8.5] Tensorflow 설치 후 import 에러 (DLL load failed)

 ** 참고 자료 (Reference) 

WEB, Git hub, TensorFlow,
"Win10: ImportError: DLL load failed: The specified module could not be found #22794"
URL : https://github.com/tensorflow/tensorflow/issues/22794

발생 경과 (Problem Description)

문제 (Problem)

After installation of Anaconda 3, python was executed on prompt window. Then thensorflow was imported as follow,
1
import tensorflow as tf
cs
Long error message occurred including 
"ImportError: DLL load failed: The specified module could not be found."

Anaconda 3 설치 후 Command창에서 python 실행
1
import tensorflow as tf
cs
실행시 아래와 같은 에러 메시지가 포함된 장문의 에러 발생
"ImportError: DLL load failed: The specified module could not be found."

해결 방법 (Solution)

Referring to Github/Tensorflow, "Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019" was installed : download link.
I have installed x64 version as same as my computer setting.

Github 내용 참조하여 "Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019" 설치
설치 download link, 아래 그림에서 내 컴퓨터 환경에 맞는 x64버전 설치 후 재부팅

경과 (Monitoring)

By checking tensorflow version, I have checked tensorflow was well imported.

이후 아래와 같은 warning은 발생하지만 제대로 tf로 import 된 것을 확인.




2020년 11월 22일 일요일

스파르타 코딩클럽 데이터분석 온라인 강의 (4주) 회고

1. 수강 목적

파이썬 활용 skill up

2. 배운 점/잘한 점
파이썬은 어느 정도 접한 경험이 있었기 때문에 강의를 따라가는 데에는 큰 어려움이 없었던 것 같다.
그렇기 때문에 큰 기대가 없었다. 하지만, 4주 강의를 하면서 생각보다 많은 것을 배울 수 있었고, 1주일에 딱 1시간이긴 하지만 즐겁게 4주 과정을 마칠 수 있었다.

배운점
1. Pandas를 알았다. 그 동안 전처리 과정을 노가다 식으로 해왔는데, 이렇게 편한 라이브러리가 있는 줄 처음 알았다. 이 편리한 것을 왜 그동안 몰랐나 싶다.
2. 마지막 주차에 plot을 위한 기능을 추가로 배운 것이 도움이 될 듯 하다.

3. 보완/발전하고 싶은 점
새로 배운 라이브러리들의 기능을 좀 더 파고들어 볼 생각이다.

4. 앞으로의 계획
시간이 가능한 코딩공부를 지속적으로 해 나갈 생각이다. 이번 4주동안 강의 + 숙제 해서 1주일에 약 3시간을 쓴 것 같다. 좀 더 많은 시간을 투자해 볼까 싶다. 

wk44 ~ 48 2020.

2020년 9월 9일 수요일

스파르타 코딩클럽 (9기) 후기

 1. 프로젝트 소개

    로또 번호 자동 추천 웹 (그냥 뽑기) 


2. 취지

    재미를 위해서. 


3. 녹화 영상


4. 설명 (+ 경험했던 난관)

    페이지 이름은 LLL로 지었다. Lotto Lucky Luxury. 운좋게 화려한 로또 번호를 받아보자는 취지이다. 

    페이지는 크게 3개 페이지로 구성되어있다. 각 L당 페이지 1개이다. 페이지 이동은 화면 상단에 있는 메뉴 선택으로 이동 가능하다.


Lotto

    Main page로 뜨는 화면이다. 기본적으로 최신 회차의 번호를 보여주고, 1회차 부터 지금까지 뽑혔던 번호를 나열해서 보여준다. (별 쓸모가 없다.)

* 개선할 점 (나쁘게 말하면 문제점)

  • Main page에 뜨는 회차가 사실 최신 회차가 아니다. 최신 회차를 자동으로 계산해서 변수로 받는 기능을 구현해야 했는데, 시간이 부족해서(귀찮아서) 그냥 최초 작성 시점인 '924'회차가 최신 회차로 뜬다. 
  • Main page에서 구현된 기능들이 페이지에 뜨는데 5초이상 걸린다. 900개가 넘는 회차의 번호들을 DB에서 불러오느라 그런 듯 하다. 차라리 지우는게 나을 수도 있겠다.

Lucky

    그나마 지금 가장 동적인 페이지다. 상단 메뉴에서 Lucky 메뉴를 누를 때 마다 새로운 6개 조합의 숫자를 보여주고 아래 테이블에 표시해 준다. 

* 개선할 점 

  • 뽑기 버튼이 따로 있으면 싶다. 시간이 부족했다. 
  • 뽑힌 숫자들이 아래 테이블에 쌓이는데, 테이블을 refresh해주는 기능을 만들려 했으나 역시 시간이 부족했다. 그래서 그냥 Lucky페이지에 다녀오면 refresh해주게 만들었다. 
  • 별 기능이 딱히 없다. 그냥 random 함수로 뽑은 6개 함수를 보여주는 거다. 아무런 개념이나 생각이 들어있지 않다. 그런데 또 그런게 나름 재미있을 것 같기도 하다. '랜덤으로 만든 숫자들 가지고 블록 꺠기 게임같은걸 구현해 볼까'라는 생각이 든다.

Luxury

    정말 럭셔리한 방법으로 숫자를 뽑아내는 뭔가를 만들려 했던 페이지이다. 지금은 최대 출현 숫자 / 최소 출현 숫자 6개를 보여주고 그 아래에 각 숫자별 최근까지 출현한 횟수를 계산해서 보여주는 정도가 구현되어 있다. 

* 개선할 점 

  • 출연 횟수가 겹치는 경우가 있다. 예를 들어 6개 숫자를 보여주고 있는데, 6번째 7번째 숫자가 동률로 6번째로 많이 출현된 경우에는 둘 중 한 숫자만 보여준다. 동률인 경우에는 동률인 숫자도 표현하는 기능이 추가 필요하다. 
  • 아래에 있는 입력 칸은 아직 아무런 구현이 되어 있지 않다. 사용자가 원하는 숫자를 고르면 그 숫자들은 무조건 선택되는 기능을 구현하고자 했으나 시간이... 
  • 그 외에 정말 럭셔리한 방법으로 숫자를 뽑아내는 기능을 구현해보고 싶다.

5. 후기

    취지는 재미를 위해서 였다. 간단한 페이지지만 정말 재밌기도 했다. 그리고 나름의 철학이 있었다고 생각한다. 

    물리학 전공자로서 배웠던 통계물리 & 열역학 지식을 기반으로 확률을 조정하는 방식으로 해서 뽑아주는 무언가를 만들고자 했다. 전자(electron), 혹은 Fermion의 energy state, 확률 분포와 불확정성 원리까지 프로젝트를 하면서 대학때 배웠던 내용을 갖고 별의별 생각을 다 한거같다.

    근데 막상 그 확률 조정 방식을 수식으로 구현하는데 실패. 우선은 이번 기회에 배운 코딩 스킬을 향상하기 위한 목적으로 (혹은 유지만 하기위해서도...) 그냥 간단한 알고리즘부터 만들어 보는게 좋겠다는 생각이 든다.  

    그래도 나름 데이터 기반과 기초적인 지식은 쌓을 수 있었다. 

1. 900회가 넘어가는 회차동안 뽑힌 숫자를 모을 수 있었다.

    비 전공자로서, 스파르타 코딩클럽에서 처음 알게된 API라는 것을 알기 전에는 '나눔로또 사이트에서 엑셀로 하나하나 숫자들을 노가다로 긁어와야 하나' 라고 막연히 생각하고 있었다. 이번 기회를 통해서 단번에 DB화 할 수 있는 방법도 알았고 실제로 데이터를 모아 올 수 있었다.

2. 기본적인 통계를 내 보았다. 

    정말 기본적인 Minimum / Maximum을 sort하여 표현할 수 있었다. 숫자 계산이라는 것도 10진법과 덧셈 뺄셈을 알면 그 이후는 그 개념에서 확장되어 가는 것 처럼, 이번에 만든 기본을 바탕으로 확장해 보고자 한다.  

    

    스파르타 코딩클럽을 통해 Front-end부터 Back-end까지 배우고, 직접 구현해 본 이번 경험이 나에겐 너무나 재밌는 경험이었다. 그리고 이 기반을 가지고 앞으로 어떻게 해볼지 생각만으로도 재밌다. (굳이 더 만들 생각말고, 생각만 하는 것도 나쁘지 않을 것 같다ㅋ)

    '4. 설명' 부분에 '*개선할 점'으로 써놓은 부분들이 이번 프로젝트의 'spec-out' 이라고 생각된다. 코딩 수업을 들어면서 튜터님이 자주 외치던 "spec-out !!"이란 말이 귀에 들리는거 같다. 개선할 것들을 앞으로 조금씩 만들어 나가며 이번 경험을 잘 살려나가보고자 한다. 

    마지막으로 이번에 좋은 경험을 할 수 있게 도와주신 스파르타 코딩클럽, 즐겁게 함께 배웠던 동료들, 그리고 이현호 튜터님께 감사드립니다 :)


끝.

(IP address는 이 사이트를 공개해도 괜찮을지 좀 알아보고 & 생각을 해 본 후 공개하도록 하겠습니다).