본 내용은 대구가톨릭대학교 컴퓨터공학과 4학년 1학기 수업 컴퓨터 영상신호처리에 기반함
공부한 내용을 복습을 위한 정리
추가 필요 개념 또는 추가 학습내용도 올라감

제1-1장 영상처리의 개요 및 프로그램 작성함수

제1-2장 디지털 영상처리의 기초

제2장 포인트 처리

제3장 영역 처리

제4장 영상 개선과 복원

제5장 디지털 간색

제6장 기하학적 처리

제7장 영상 변환

제8장 영상 압축

Written by 캐슬서클


영상처리

정의

이미지 조작
  1. 고품질의 이미지
  2. 이미지의 특징 추출 및 사용
  3. 이미지 복원
  4. 새로운 이미지 생성
컴퓨터 그래픽 ( Computer graphics ) :  컴퓨터를 이용한 새로운 이미지 만들어내는 것 ex) 영화 속 CG,..
이미지 처리 ( Image Processing) : 존재하는 이미지 처리 ex) 소벨 필터, 흑백 변환, 좌우반전...
컴퓨터 비전 ( Computer Vision) : 컴퓨터가 사람과 유사하게 인식하도록 함

이미지 종류

문서 작업을 하다 보면 다양한 폰트를 사용 할 수 있으며, 지금 이 글을 보는 당신도 필요에 의해 폰트를 사용한 경험이 있을 것이다. 사용할 뿐 아니라 새로운 폰트를 만들어 낼 수도 있다. 이미지 또한 상황과 용도에 맞게 다양한 형태가 존재한다. 우린 스마트폰 카메라를 이용해 셀카를 찍었을 때 다채로운 색감을 보여주고 싶을 때는 칼라 이미지, 아날로그적 감성과 중후함 등을 표현하고 싶을 때는 흑백 이미지로 나타내기도 한다. 이처럼 이미지도 다양한 형태가 존재하며 우리는 알게 모르게 사용하고 있다.
아래쪽 이미지는 대표적인, 자주 쓰이는 이미지 형태를 정리해 놓았다. 여기서 정지영상은 사진이라고 생각하면 된다.


이미지 처리 과정

이미지 처리를 통해 우리는 특징을 추출하거나, 더 좋은 화질의 이미지 변경을 주 목표로 한다. 과정은 총 5개의 과정이 존재하며 각각의 과정을 거쳐 원하는 결과물을 얻을 수 있다.

  1. 입력 : 원하는 동영상 또는 사진 이미지

  2. 전처리 ( Preprocessing ) : 특징을 부곽 또는 이미지 형태 바꾸는 작업 ex) 흑백 변환, 잡음제거

  3. 분할 ( Segmentation ) : 물체 또는 사람 등, 관심있는 영역 분할

  4. 특징추출 (Feature Extraction ) : 타 영역 또는 물체와 구분하기 위한 관심  영역 특징 추출

  5. 출력 : 최종 결과물 ex) 물체 추적, 등..



출처 : 2017년 춘계학술대회 포스터 부문


키넥트 센서를 활용한 셀프 운동 교정 프로그램

계명대학교 컴퓨터 공학과
신현지, 김강일, 김광훈, 박수진, 이연희


정리 : Black빈

2017.05.11


서론

- 혼자 운동을 하는 경우, 운동 자세가 정확한지 확인할 수 없기 때문에 잘못된 운동 습관이 들어 신체의 불균형이 일어 날 수 있음을 계기로 시스템 제안


- 키넥트 센서를 이용한 운동자세 보정 및 운동정보 관리하는 시스템


본론

- 사용자 자세를 알아내기 위해 키넥트 센서를 이용하여 3D 이미지 출력. 단, 정확한 측정을 위해 사용자 전방에 키넥트 설치 필요. 만일 자세가 정확하지 않을 시에는 음성으로 알려 주고 웹서버 기반의 DB에 운동 자세를 저장 및 관리하는 시스템을 구성


프로그램의 10가지 요구사항


분류 기준

세부 내용 

시스템 요구사항

운동, 센서, 기록 프로그램 지원 

기능 요구사항

사용자가 바른 자세로 운동하도록 지원 및 자신의 운동 모습 관찰 

성능 요구사항

틀린 동작 시 실시간 교정이 가능하도록 지원, 센서 성능 향상 

보안 요구사항

고유 시리얼 번호, 사용자의 접근제한을 통한 보안성 향상 

품질 요구사항

출처가 분명한 전문가 영상 제공, 정확한 운동 자세 정보 파악 

데이터 요구사항 

사용자의 운동 정보 수집 및 저장

인터페이스 요구사항

프로그램이 동작할 때 상황에 맞는 화면 전환

프로젝트 관리 요구사항

수집된 정보 관리

프로젝트 지원 요구사항

프로젝트 수행 시 필요한 요소 지원

테스트 요구사항

보다  간편한 준비물로 편리성 향상 테스트



아래의 아키텍쳐와 시퀀스 다이어그램은 그림이 잘 보이지 않기에 설명을 추가로 달아 놓았다.

- 시스템 아키텍쳐


키넥트

         - 사용자 운동 영상 PC로 전송 


     PC

         - OpenCV를 이용, 키넥트 영상을 웹서버 기반의 DB에 전송하여 저장.

         - DB에 저장된 올바른 자세를 골격 분석 알고리즘을 이용하여 비교

         - 자세의 개수를 세어주는 모듈


Server

         - PC에서 전송 받은 영상 저장

    - 올바른 운동 자세(x,y,z 좌표 값)

         - 음성 지원, 개수 저장, 운동 목록 관리 모듈


     App

         - 운동 목록, 음성 지원, DB에 저장된 올바른 운동 자세 영상 제공



- 운동 정보 시퀀스 다이어그램

1. 사용자가 운동 목록 중 한 종목을 선택한 후 운동 시작.


2. 운동 중 PC의 키넥트 스튜디오 프로그램과 연동 -> 골격 분석


3. 운동 중 틀린 동작 시 음성 지원모듈을 이용 즉시 운동 교정이 가능하도록 도움.


4. 운동 종료 후 운동 시 촬영한 영상을 전송여부에 따른 DB전송 or 삭제.


5. 각도, 좌표의 위치를 기준으로 운동 횟수를 측정 후 저장


시퀀스 다이어그램* : 구성요소 간의 상호작용을 나타내는 다이어그램


- 시스템 구성도

                                            NUSkeleton API의 예                           전체 모듈 시스템 구성도


시스템 환경 



- 모듈                            

키넥트 센서

- RGB카메라를 이용 RGB영상 정보 획득

- IR센서로 적외선 특정 패턴을 이용하여 물체의 깊이정보 획득

- NUI Skeleton API를 이용하여 골격의 형태 위주의 뼈대 트레킹 획득


DB

- 웹서버 기반의 MySQL(DB)에 키넥트 센서로 부터 획득한 사용자 운동 영상 및 비교를 위한 올바른 자세 영상 정보, 알림용 음성, 사용자 운동 기록을 저장


스마트 폰

- App을 이용한 개인정보, 사용자 관리 및 DB에 저장된 정보를 수시로 확인이 가능하도록 함



결론 및 활용 가능성

- 헬스장에 가지 않아도 정확한 자세로 운동이 가능한 방법을 제시하였고 기존에 나와있는 스마트 헬스기기와 다른 점으로는 동작인식 기능과 잘못된 운동 자세를 올바른 방향으로 고칠 수 있게하는 기능 제공


- 현재 PT위주로 제작하였지만 정확한 자세를 만들어 준다는 점을 이용하면 다양한 방면에 활용이 가능할 것 같다. 예를 들어 병원의 재활 치료나 요가 등등이 있다.

작성자: 폴아웃


C언어 - 연산자 우선순위


문제) 하위 프로그램에서 a의 출력 값은?


#include <stdio.h>

int main(){

int a = 10;

a = ++a * a--;

printf ("a is %d\n", a);

return 0;

}




정답)

Visual C/C++ compiler 

 - version 141

a is 120


GCC 

 - version 5.4.0

a is 110


해석)

Visual C/C++의 컴파일러와 GCC의 컴파일러의 동작 차이 때문


 Visual C/C++ 디어셈블 결과(Intel 스타일)

GCC 디어셈블 결과(AT&T 스타일) 

 


 







+ Recent posts