달력

72025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

keras와 tensorflow를 import 하면 텐서플로우를 사용할 수 있다면 메시지가 나온다.

 

pip로 설치한 keras와 tensorflow의 버전을 확인한다.

 

GPU를 사용중인지 체크합니다.

 

어떤 Device를 사용중인지 체크합니다.

Posted by 생짜
|
  • tesorflow-cpu 버전 설치

나는 노트북을 사용하고 있어 NVIDIA GPU가 없다. 선택의 여지가 없이 cpu 버전을 설치했다. 나중에 외장형 NVIDIA GPU를 설치해볼 예정이다.

Anaconda를 설치하지 않았기 때문에 Native PIP를 이용해서 설치를 한다. PIP로 설치하면 install 명령어 하나로 간단하다. vertualenv 가상환경을 실행 시킨후 pip를 이용하여 tensorflow를 설치한다.

 

pip install --upgrade tensorflow

 

tensorflow를 처음 설치한다면 --upgrade 옵션이 필요없다. tensorflow가 설치되어 있다면 upgrade를 하라는 옵션이다.

나는 python 3.7.3과 vertualenv를 사용하고 있어 Anaconda를 사용하지 않았다.

 

vertualenv 가상환경에서 tensorflow cpu 버전 설치
tensorflow 설치 후 pip list 명령어로 확인

 

 

  • tensorflow-gpu 버전 설치

tensorflow gup 버전 설치 역시 vertualenv 환경에서 pip로 쉽게 할 수 있지만 pip로 설치하기 전 NVIDIA GPU dirver 업데이트 및 NVIDI Toolkit 설치와 환경변수 설정 등 해야할 일이 몇가지 더 있다. 

tensorflow gpu 버전을 설치하기 위해 NVIDIA 페이지에 들어가 CUDA를 다운로드하여 설치해야 한다.

 

  • CUDA 및 cuDNN 설치 순서/방법
  1. 내 PC의 '장치관리자'에 들어가 GPU가 NVIDIA 인지 확인 후 드라이버 업데이트를 한다.
  2. https://www.tensorflow.org 에 접속한다.
  3. 아래 'NVIDIA CUDA Toolkit 및 cuDNN SDK 다운로드' 그림과 같이 tensorflow페이지에서 install->GUP support를 선택 후 CUDA Toolkit과 cuDNN SDK를 다운로드한다.
  4. 다운로드한 CUDA Toolkit을 설치한다.
  5. CUDA Toolkit 설치 후 다운받은 cuDNN의 압축을 푼다.
  6. cuDNN의 압축을 푼 후 'cuda' 폴더 밑에 'bin', 'inculude', 'lib' 폴더가 생긴다.
  7. cuDNN의 cuda 폴더 밑에 생긴 폴더의 파일들을 CUDA Toolkit 설치 폴더에 복사하는데 각 파일들은 경로에 맞게 복사해야 한다.
  8. 각 파일들 복사가 끝나면 CUDA Toolkit을 설치한 폴더 밑의 cuda\bin 폴더, 예를 들어 'C:\Program Files\CUDA\bin' 폴더의 path를 환경변수의 'PATH'에 설정한다. 이 설정을 안해주면 나중에 python에서 tensorflow를 사용할 때 콘솔창에 drive_init() error가 나오면서 tensor가 실행이 안될 수 있다.
  9. 환경변수의 PATH에 'cuda\bin\'폴더를 설정해 주기 전에 꼭 cuDNN 압축푼 폴더의 'cuda\bin\' 폴더의 파일 및 cuDNN 폴더 밑의 파일들을 '7번' 처럼 복사해줘야 한다.

 

 

NVIDIA CUDA Toolkit 및 cuDNN SDK 다운로드

 

CUDA Toolkit  및 cuDNN 설치가 끝나면 이제 vertualenv를 실행 시킨 후 tensorflow-gpu 버전만 pip로 설치하면 끝이다.

 

pip install --upgrade tensorflow-gpu

 

 

  • keras 설치

tensorflow( cpu/gpu 버전 모두해당 )를 설치했다면 keras를 pip로 설치한다.

 

pip install keras

 

pip로 keras 설치화면

 

python에서 pip로 tensorflow gpu 버전 및 cpu 버전 설치와 keras 설치가 끝났다.

이제 내가 좋아하는 coding을 할 수 있다. ㅎㅎㅎ

Posted by 생짜
|

영상처리가 원본 영상을 사용자가 원하는 새로운 영상으로 바꿔 주는 기술이라면 컴퓨터 비전은 영상처리 개념을 포함하는 좀 더 포괄적인 의미로 영상에서 의미 있는 정보를 추출해 주는 기술을 말한다.

영상처리는 말 글대로 영상에 여러가지 연산을 가해 원하는 결과를 새롭게 얻어내는 과정으로 이미지 프로세싱이라고 한다. 영상처리의 주된 목적은 더 좋은 품질의 영상을 얻으려는 것이다.

  • 영상(화질) 개선
  • 영상복원
  • 영상분활(원하는 부분만 오려내는 과정)

 

컴퓨터 비전은 

  • 객체 검출
  • 객체 추적
  • 객체 인식 

등이 있다. 

 

객체의 검출, 추적, 인식 등 비전 작업을 하기 전에 영상의 화질을 개선하는 영상처리 작업을 하는 것이 일반적이다. 영상에서 객체를 인식하려 하는데 화질이 나쁘면 인식이 잘 되지 않을 것이다. 전처리 작업으로 화질 개선만 있는 것이 아니다. 고화질의 영상은 객체를 인식하는데 불필요한 연산이 많이 필요할 수 있어 영상을 단순화 하는 작업도 전처리 작업으로 많이 한다.

 

우리가 영상에서 원하는 결과를 얻기 위해서는,

  • 입력받은 영상을 노이즈를 없에거나 엣지를 살리는 등의 전처리를하여 
  • 원하는 품질로 바꾼 후
  • 원하는 객체를 추적하여 얻어낸다.

위의 과정을 원하는 결과를 얻을 때까지 계속 반복하는 것이 컴퓨터 비전이하는 일이다.

 

컴퓨터 비전으로 할 수 있는 분야는 

  • Image Processing
    • Image Enhancement
    • Filter
    • Rotation
    • Hough Transforms
    • Histogram
  • Robot/Machine/Video/Vision
    • Tracking
    • Feature description
  • Artificial Intelligence
    • Pattern Recognition
    • Maching Learning
    • Deep Learning
  • 3D Geometry
    • Camera Calibration
    • 3D reconstruction
    • Stereo Camera

등이 있다.

 

OpenCV는 컴퓨터비전라이브러리의 줄임말로 영상처리와 컴퓨터 비전 프로그래밍 분야의 가장 대표적인 lib이다.

OpenCV는 C/C++ 언어로 작성되었지만 파이썬, 자바 언어를 바인딩 언어로 공식지원하고 있으면 윈도우, 리눅스, OSX, 안드로이드, iOS까지 지원하고있다.

 

OpenCV의 공식 웹사이트는 

https://opencv.org/

 

OpenCV

Overview OpenCV.org, in partnership with Big Vision LLC (owner of LearnOpenCV.com) has launched a

opencv.org

 

이고 opencv-python tutroal 웹사이트는

https://opencv-python-tutroals.readthedocs.io/en/latest/index.html#

 

Welcome to OpenCV-Python Tutorials’s documentation! — OpenCV-Python Tutorials 1 documentation

Docs » Welcome to OpenCV-Python Tutorials’s documentation! Edit on GitHub © Copyright 2013, Alexander Mordvintsev & Abid K. Revision 43532856. Built with Sphinx using a theme provided by Read the Docs.

opencv-python-tutroals.readthedocs.io

이다.

 

OpenCV는 main / extra 두 개의 저장소로 나누어 소스 코드를 관리한다.

메인 저장소는 OpenCV에서 공식 배포하는 코드를 관리하고 엑스트라 저장소는 contrib 저장소라고도 하는데 beta 버전의 소스코드들이 있다. OpenCV의 공식 배포판은 BSD 라이센스로 연구와 상업용도와 무관하게 무료로 사용할 수 있으면 OpenCV를 활용해서 만든 소스 코드를 오픈할 의무는 없다.

 

 

 

Posted by 생짜
|

한동안 못 들은 말이 있다.

'주인의식을 갖자' 이다. 사장님들이 많이 하시는 말이다.

나도 한때 회사에 대해 주인의식을 가졌던 적이 있다. 지금은 다 버려버렸다.

회사에 대한 주인의식을, 아무리 주인의식을 가져봤자. 회사는 내께 되지 않는다.

내께 아닌데 어떻게 주인의식을 가질 수 있나. 말짱 헛 소리다.

주인의식을 가지고 정말 집에도 안들어가고 열심히 일했던 적이 있다.

내가 주인의식을 가지고 일했다고 해서 매해 연봉협상할때 연봉이 비약적으로 오르는 것도 아니더라 

퇴사할 때 회사 주식 한쪼가리라도 주지 않더라. 주인의식을 가지고 일해봤자 회사는 결코 내께 되지 않고 

가족들과 더 멀어지기만 한다. 내께 될 수 없는 것 때문에 내꺼랑 더 멀어지는 이 상황이 얼마나 우스운 일인가.

밑에 친구들이나 어린 친구들한테 회사에 주인의식을 가지지 말고 '너의 일에 주인의식을 가져라' 라고 말한다.

최소한 내 생각에 이 둘은 서로 다르다. 일은 주인의식을 가지고 하면 내께 되기도 하기 때문이다. 일을 하고 일이 내 머리속에 완전히 들어오게 되면 그 때부터는 내꺼다. 

그 누구에게도 빼앗기지도 않는 온전히, 전부 내꺼가 될 수 있다. 

조심해야 할 것은 딱 한가지다. 그 일이 나를 떠날때가 있다. 프로젝트가 끝나거나 내가 다른 팀으로 가거나 혹 퇴사할 수도 있다.

그럼 그 때부터는 더이상 내가 주인의식을 가질 수 없다. 그 동안 내가 해온 내 머리속의 일은 내꺼이지만 내 손을 떠난 일은 더이상 내께 아닌 새로운 일이다. 떠난 애인한테 술먹고 울며 전화를 하는 찌질은 모습 처럼 꼴불견인것 없다.

내 손에 떠난 이상 더이상 내께 아니다 깨끗이 잊자. 그렇지 않으면 나만 피곤해진다. 

Posted by 생짜
|

금오공대 김성영 교수

http://www.kocw.net/home/cview.do?lid=22e78d03222e75ee

 

OpenCV를 이용한 디지털영상 처리

컴퓨터공학과에서는 몇 년 전부터 “영상처리및패턴인식” 교과목을 학부과정에 개설하여 학생들에게 영상처리와 패턴인식에 관한 기초 이론을 교육하고 있다. 그런데 영상처리와 패턴인식은 이론에 대한 학습량이 너무 많아 수업시간에는 단지 이론 교육에 집중할 수밖에 없는 상황이다. 하지만 학부과정에서는 이론에 대한 학습뿐만 아니라 관련 문제에 대한 해결을 통해 이론의 적용과 응용 과정이 반드시 필요하다. 영상처리에 대한 문제 해결은 영상처리 이론에 대한 알고리즘 구현

www.kocw.net

컴퓨터공학과에서는 몇 년 전부터 “영상처리및패턴인식” 교과목을 학부과정에 개설하여 학생들에게 영상처리와 패턴인식에 관한 기초 이론을 교육하고 있다. 그런데 영상처리와 패턴인식은 이론에 대한 학습량이 너무 많아 수업시간에는 단지 이론 교육에 집중할 수밖에 없는 상황이다. 하지만 학부과정에서는 이론에 대한 학습뿐만 아니라 관련 문제에 대한 해결을 통해 이론의 적용과 응용 과정이 반드시 필요하다. 영상처리에 대한 문제 해결은 영상처리 이론에 대한 알고리즘 구현을 통한 프로그래밍 과정으로 이루어진다.

그런데 영상처리 알고리즘은 복잡도가 매우 높아 간단한 수준의 알고리즘이라도 직접 구현하기에는 최소 몇 시간에서 길게는 몇 일정도의 상당한 노력과 시간이 소요된다. 따라서 비교적 간단한 과제도 과도한 프로그래밍 과정이 필요하여 학생들의 초기 접근을 위한 문턱이 매우 높은 상황이다.

다행스럽게도 최근에 영상처리를 위한 다양한 개발도구들이 라이브러리 형태로 제공되고 있다. 특히 이들 라이브러리는 오픈 소스코드 형태로 제공되고 있으므로 관심 있는 사람이면 누구나 쉽게 사용할 수 있을 뿐만 아니라 기존의 기능을 개선하거나 새로운 기능을 추가할 수 있다. 따라서 이런 라이브러리의 사용법에 대해 학습할 수 있다면 과도한 프로그래밍 과정 없이 학습한 이론에 대한 결과 확인이 가능하여 이론에 대한 정확한 이해와 응용이 가능하다. 또한 다양한 실무 예제에 대한 구현도 가능하게 된다.

 

금오공대 김성영 교수

http://www.kocw.net/home/search/kemView.do?kemId=1127905&ar=relateCourse

 

영상처리 및 패턴인식

영상처리는 다양한 방법론과 알고리즘에 대한 습득이 필요하여 이론에 대한 학습만으로는 활용 능력을 습득할 수 없다. 본 교육 컨텐츠에서는 이론 학습에 따른 활용 능력의 함양에 중점을 두고 있다. 이를 위해 영상처리 라이브러리 사용법에 대한 구체적인 사용법을 제공하고 이를 활용하여 영상처리 기능을 직접 구현할 수 있는 다양한 기회를 갖도록 한다.

www.kocw.net

영상처리는 다양한 방법론과 알고리즘에 대한 습득이 필요하여 이론에 대한 학습만으로는 활용 능력을 습득할 수 없다. 본 교육 컨텐츠에서는 이론 학습에 따른 활용 능력의 함양에 중점을 두고 있다. 이를 위해 영상처리 라이브러리 사용법에 대한 구체적인 사용법을 제공하고 이를 활용하여 영상처리 기능을 직접 구현할 수 있는 다양한 기회를 갖도록 한다.

 

금오공대 김성영 교수

http://www.kocw.net/home/search/kemView.do?kemId=1266483

 

라즈베리 파이 환경에서의 파이썬 기반 영상분석

영상 처리와 영상 분석 알고리즘을 이해하고 라즈베리파이 환경에서 파이썬을 사용하여 영상 관련 문제를 해결할 수 있는 프로그램을 작성하는 방법을 살펴본다.

www.kocw.net

영상 처리와 영상 분석 알고리즘을 이해하고 라즈베리파이 환경에서 파이썬을 사용하여 영상 관련 문제를 해결할 수 있는 프로그램을 작성하는 방법을 살펴본다

 

한동대학교 황성수 교수

http://www.kocw.net/home/search/kemView.do?kemId=1317915&ar=relateCourse

 

컴퓨터비전

본 강좌에서는 컴퓨터 비전 분야의 기본 개념을 설명합니다

www.kocw.net

본 강좌에서는 컴퓨터 비전 분야의 기본 개념을 설명합니다

Posted by 생짜
|

인공지능의 구현방법에는 지식공학(합리주의/이성주의), 머신러닝/기계학습(경험주의)로 나눌 수가 있다. 

지식공학은 특정한 존재가 대상에게 제공한다. 룰베이스의 Top-down 방식으로 1980년대 전문가 시스템이 이러한 인공지능으로 구현되어 있다.

 

머신러닝/기계학습은 컴퓨터가 데이터로부터 지식을 직접 학습 하는 방법 Bottom-up으로 현재의 딥러닝이다. 

 

기계학습은 인공지능을 구현하기 위한 한 가지 방법으로 데이타로부터 지식을 학습한다. 신경망은 데이터로 부터 우리 되뇌가 데이터를 학습하는 방법을 모사한 방법이고 신경망은 기계학습의 한 종류이다.

딥러닝은 신경망인데 신경망의 깊이가 깊은 모델을 말한다.

 

 

'인공지능 > 기계학습 > 신경망 > 딥러닝' 이라고 할 수 있다.

 

그럼 왜? 이 시대에 머신러닝일까?

 

네트워크로 연결된 Big Data가 머신러닝을 할 수 있는 기반을 만들어 주었기 때문이다. 즉 네트워크의 혁명이 없었다면 머신러닝 기반의 인공지능도 없었을 것이다.( 1980년대에는 인터넷이 없었기 때문에 룰베이스의 인공지능이 많이 사용되었다)

Posted by 생짜
|
Posted by 생짜
|
Posted by 생짜
|

QT Quick의 QML은 그 동안 별다른 코딩 스타일이 없었던 것으로 알고 있다. QT에서 따로 규격이란걸 내놓지 않았었다. 오늘 QML에 Coding Guide글을 보고 반가웠다. ^^ 

 

https://github.com/Qt-QML/QML-Coding-Guide?fbclid=IwAR3JIQu4tVZ3sH-Oo-asJgeeYhABV5gI1Afv3OISvTLDeAgFiesZCRtddHQ#reduce-the-number-of-bindings

 

Qt-QML/QML-Coding-Guide

A collection of good practices when writing QML code - Qt-QML/QML-Coding-Guide

github.com

 

 

'karma( 업 ) > QT&QML Using' 카테고리의 다른 글

C++로 QML custom elements 만들기  (0) 2022.01.19
Introduction to Qt / QML  (0) 2019.11.17
Qt Widgets or QML ?  (0) 2019.11.17
Posted by 생짜
|

일은 말이 아니라 글로 하는 것이다.

말로 업무지시를 하고 말로 협조 요청을 하고 딴 소리 하는 사람들이 무지 많다.

일은 글로 하는 것이라는 것을 여지없이 새삼 느낀다.

Posted by 생짜
|