CCD와 CMOS의 차이 Hardware

1. CMOS는 대세가 아니라 필수가 되었다.

세계 최대의 CCD센서 제조업체 소니(SONY)가 CCD 센서의 생산중단을 발표했다.
2017년부터 단계적 생산 중단, 산업용 카메라용 CCD센서는 2026년 최종 생산중단이 된다.

이에 따라 모든 머신비전 솔루션 업체에서는 기존 CCD를 CMOS로 전환할 수 있도록 지원제공 페이지를 제공하고 있고, 최대한 빨리 전환하는 것을 추천하고 있다.

https://www.baslerweb.com/ko/sales-support/knowledge-base/switch-ccd-cmos/



이미 제조업체 및 사용자의 73%가 CMOS를 사용하고 있으며, 27%만이 CCD를 여전히 사용하고 있다.
http://www.hellot.net/new_hellot/magazine/magazine_read.html?code=202&idx=39265&public_date=2018-02

2. CCD(Charge-Coupled Device, 전하결합소자, 씨씨디)


아날로그 방식
노이즈가 적다
스미어 현상 발생
상대적으로 생산비용이 높다

https://ko.wikipedia.org/wiki/%EC%A0%84%ED%95%98%EA%B2%B0%ED%95%A9%EC%86%8C%EC%9E%90
https://www.samsungsemiconstory.com/805

3. CMOS(Complementary metal oxide semiconductor, 상보성 금속 산화막 반도체 라고는 잘 안부르고 시모스)


디지털 방식
노이즈가 많다
스미어 현상 없음
상대적으로 생산비용이 낮다

https://ko.wikipedia.org/wiki/CMOS
https://www.samsungsemiconstory.com/778

4. 정리

모바일 기기에 적용 시 전력소모가 낮다는 압도적인 장점때문에 CMOS가 대세가 되었고, 지속적인 투자 및 기술개발이 이루어지고 있다. 이에 반해 이미 기술적으로 성숙했던 CCD는 CMOS에 비해 장점이 하나둘 없어지고 있던 차에 생산중단까지 발표되면서 완전한 사양의 길로 빠져들게 되었다.

https://teci.tistory.com/4
https://luckygg.tistory.com/30
https://m.blog.naver.com/PostView.nhn?blogId=vsguy&logNo=100073211977&proxyReferer=https%3A%2F%2Fwww.google.com%2F

5. 구글 검색 중 한국과학기술정보연구원에서 CCD와 CMOS를 정리해놓은 문서를 찾았는데 정리가 너무 잘 되어 있어서 감사했다.

첨부파일


tensorboardX Deep Learning

tensorboardX(텐서보드 엑스) : Pytorch framework에서 사용 가능한 딥러닝 visualization tool



1.

Tensorflow framework에는 tensorboard라고 하는 visualization tool이 있다.
필요한 정보를 학습할때마다 log 형태로 저장하고, 이를 web기반으로 실시간 또는 학습이 끝난 뒤 확인이 가능하다.

2.

Pytorch framework의 경우 tensorflow의 tensorboard에 대응되는 visualization tool이 별도로 존재하지 않는다.
많은 유저들이 이미 익숙해져 있는 tensorflow의 tensorboard를 그대로 이용하고자 하는 것이 tensorboardX 다.



tensorboardX로 저장한 log를 tensorboard로 띄운 결과.


3. 

설치방법은 pip을 사용


pip install tensorboardX

4.

이후 실행방법은 tensorboard와 같다. (tensorboardX로 저장한 log를 tensorboard로 읽는 것이기 때문에)
tensorboard --logdir=(SummaryWriter에서 설정해놓은 logdir)


Tensorflow가 설치되어 있지 않기 때문에 tensorflow를 찾을 수 없다는 문구가 뜨는데 tensorboard사용에는 문제가 없다.

별다른 설정을 하지 않았다면 tensorboard의 포트값은 6006이다.
사용하는 web browser에서 다음의 주소로 들어가면 된다.

localhost:6006


5.


작성하다 보니 pytorch.utils 모듈 내에 tensorboard가 제공되고 있는 것을 확인하였다.



추후 수정될 수 있으며 아직 add_graph가 작업 중 이라고 한다.
pytorch 사용자들 내에서도 시각화에 대한 니즈가 있고, 이를 반영하여 대체제로 tensorboardX가 널리 사용되었던 것인 만큼
조만간 이 모듈을 통해 pytorch 자체에서 시각화가 용이해질 것으로 생각된다.


.c, .cpp, .h 외의 확장자들 : .cxx, .hpp C/C++

요약하자면, c가 아닌 c++ 스타일로 정의된 헤더파일은 그것이 c++ 스타일임을 명시해 주어야 할 필요가 있기 때문에 .hpp와 같이 다른 확장자를 사용함으로서 이를 알 수 있게 한다.

cxx와  cpp는 같다고 생각한다.

It is probably due to a project using libraries (in form of source code) that don't use the same naming convention the programmer(s) of the project.

There are at least four different extensions usable for C++ files:
  • .C
    Not very popular since it requires a case-sensitive file system (otherwise, it would clash with old .c file names), and even a few modern OS are not case-sensitive.
  • .c++
    Some OS or file systems don't support the + character in file names.
  • .cpp
    That's very portable across file systems.
    But, it might be less consistent than .cxx
  • .cxx
    Very portable across file systems (not more than .cpp)
    Using the name CXX for C++ is quite popular because CPP usually designates the C (and C++) pre-processor.
    For example, these environment variables/makefile macros
    • CPPFLAGS
      Represents the flags passed to the pre-processor.
    • CFLAGS
      Flags passed to the C compiler.
    • CXXFLAGS
      Flags passed to the C++ compiler.
    • LDFLAGS
      Flags passed to the linker.
    • CC
      The path to the C compiler.
    • CPP
      The path to the pre-processor.
    • CXX
      The path to the C++ compiler.
    • LD
      The path to the linker.

    That's why, with the above notations, it's very natural to give the .cxx extension to C++ files.


For headers, there are at least five extensions:
  • .h
    Traditional C header files.
    Since the compiler doesn't do anything based on this extension, it can be used for C++ header files too.
    Furthermore, there are a lot of header files that are designed to be included by both C and C++ translation units.
    In that case, it's natural to give them this extension.
  • .H, .hpp or .hxx
    That's very natural to give one of these extensions for C++ header files (being consistent with the name of C++ translation units).
    That's not a bad idea to use one of these name for pure C++ header files only (containing class definitions, or templates, or any other feature not supported by C).
  • No extension
    That's internally used by a number of C++ compilers for iostream, vector, algorithm and all others new-style C++ headers.

There are probably other (less popular) extensions for headers.
Perhaps .cpp and .i



arg min(x) and arg max(x) Mathematics

min(f(x))는 f(x)의 최소값
arg min(f(x))는 f(x)를 최소로 만드는 x값

max(f(x))는 f(x)의 최대값
arg max(f(x))는 f(x)를 최대로 만드는 x값

예를들어, f(x)=cos(x)일때 arg max(f(x))와 arg min(f(x))는 다음과 같다.

물론, max(f(x)) = 1, min(f(x)) = -1 이다.

Hadamard product(아다마르 곱) Mathematics

같은 차원의 두 행렬 A, B를 아다마르 곱 했을 때, 그 결과 C의 i, j의 원소는 A행렬의 i, j번째 원소와 B행렬의 i, j번째 원소의 곱과 같다. 즉, A와 B가 각각 3*2행렬이라면 두 행렬 A, B의 아다마르 곱은 다음과 같다.


MATLAB
array multiplication (*.)으로 계산한다.

출처:
http://en.wikipedia.org/wiki/Hadamard_product_(matrices)

1 2 3 4 5 6 7

AdSense