ĐạiHọcQuốcGiaTP.HCM VietnamNationalUniversity–HCMC
TrườngĐạiHọcBáchKhoa HoChiMinhCityUniversityofTechnology
KhoaCơKhí FacultyofMechanicalEngineering
Đềcươngmônhọc
Nhậpmônthịgiácmáytính
(ComputerVision)
Sốtínchỉ 3(3.0.6) MSMH ME4201
Sốtiết Tổng:45 LT:45 TH:0 TN:0 BTL/TL:x
MônkhôngxếpTKB
Tỉlệđánhgiá BT:30% TN: KT: BTL/TL:40% Thi:30%
Hìnhthứcđánhgiá
Quátrình
Thi:viết,75phút
Môntiênquyết
Mônhọctrước
Mônsonghành
CTĐTngành KỹthuậtCơđiệntử
Trìnhđộđàotạo Đạihọc
Cấpđộmônhọc Năm4
Ghichúkhác
1.Mụctiêucủamônhọc:
Giớithiệuchohọcviêncáckiếnthức,kỹnăngcơbảnvềthịgiácmáytínhđểhọcviêncóthểđọcvàhiểunhững
nghiêncứuvềthịgiácmáytính.
Họcviênbiếtcáchcalibmộtcamerasố.Hiểuvàhiệnthựcđượccácphươngpháptáchbiên,cácgiảithuậtlọc,
cácgiảithuậtfittingvàsửdụngthưviệnmãnguồnmởOpenCV.
Họcviênsẽcókhảnăngứngdụngthịgiácmáytínhtronglĩnhvựccơđiệntử.
Aims:
 To introduce the basic concepts to read and understand the advanced topics and current research literature in
computervision.
Tointroducethebasicissuesandtechniquesusedtosolvethose.Studentsshouldbeabletocalibrateadigital
camera, understand the various edge detectors, implement several image filtering algorithms, understand the
differentwaysthattheshapeofanobjectcanberecoveredanduseOpenCV(Intel®OpenSourceComputerVision
Library)whichiscrossplatformandfreeforuse.
Toenablestudentstoworkorcarryoutsomepracticalcomputervisionprojects.
2.Nộidungtómtắtmônhọc:
Mụcđíchcủamônhọcthịgiácmáytínhlàđưaracácphươngphápđểmáytínhcóthểhiểuvàxâydựnglạiđược
môhìnhthếgiớithựctừcácảnhthuđượctừcamera.Mônhọcsẽtìmhiểuvềnhữngkháiniệmcơbảnvềmáyảnh
số,cáchtạoảnh,cáchệthốngmàu,môhìnhtoáncủacameravàphươngphápđểxácđịnhcácthôngsốnội
ngoạicủacamera.Mônhọcsẽtrìnhbàycácphươngphápchuyểnđổiảnhtừmứcxámsangnhịphân,mộtsốtoán
tửcơbảntrênảnhnhịphâncũngnhưứngdụngcủaviệcphântíchảnhnhịphântrongthựctế.Trìnhbàycácgiải
thuậtlọc,táchbiên, fitting,cácphépbiếnđổiảnhvàmốiquanhệgiữaphéptoán convolutionvớicácphép đạo
hàm,biếnđổiảnh.MônhọccũngsẽtìmhiểuvềthưviệnmãnguồnmởOpenCVvàxâydựngmộtsốứngdụngthị
giácmáytính.CodecủacácvídụmẫuđượcthểhiệnbằngC++.
Courseoutline:
Incomputervision,thegoalistodevelopmethodsthatenableamachineto“understand”oranalyzeimagesand
videos.Inthisintroductorycomputervisioncourse,wewillexplorevariousfundamentaltopicsinthearea,including
cameras and projection models, camera calibration, image formation, binary image analysis, feature detection,
segmentation.Inaddition,studentwilllearnhowtousetheOpenCVlibrarytobuildcomputervisionapplications.
3.Tàiliệuhọctập:
Sách,Giáotrìnhchính:
[1]ComputerVision:AlgorithmsandApplications,byRichardSzeliski,Springer,2010.
[2]GonzalezandWoods,DigitalImageProcessing,2ndEdition,PrenticeHall,2002.
[3]LearningOpenCV,GaryBradskiandAdrianKaehler,O’ReillyMedia,Inc.,2008.
[4]ComputerVision,byLindaG.ShapiroandGeorgeC.Stockman,PrenticeHall,2001
Sáchthamkhảo:
[5]ComputerVision:AModernApproach,byD.A.ForsythandJ.Ponce,PrenticeHall,2002.
4.Hiểubiết,kỹnăng,tháiđộcầnđạtđượcsaukhihọcmônhọc:
STT Chuẩnđầuramônhọc
L.O.1
Hiểurõmụctiêu,cácchuyênngànhliênquan,tiềmnăng,tháchthứcvàứngdụngthựctếcủathịgiác
máytính.
L.O.1.1Hiểurõthếnàolàthịgiácmáytínhvàcácchuyênngànhliênquan.
L.O.1.2Biếtđượccácthôngtinnàosẽđượcrúttríchtừảnhvàmộtsốứngdụngcủathịgiácmáytính.
L.O.1.3Nắmđượccáckhókhănkhixửlýcácảnhcủamộtvậtthểmàcósựkhácnhauvềđiểmnhìn,độ
sáng,tỷlệ,độbiếndạng,độchelấp,màunền,tốcđộchuyểnđộng,sựđadạngcủamộtvậtthể.
L.O.2
Hiểuvàphânbiệtđượcsựkhácnhaugiữacácphépbiếnđổihìnhhọc.
L.O.2.1Hiểurõcácđịnhnghĩavàcáctínhchấtcủacácphépbiếnđổihìnhhọctrongxửlýảnh.
L.O.2.2Nắmđượccácmatrậnbiếnđổicủacácphépbiếnđổihìnhhọc:isometries,Similarities,Affinity,
Projective.
L.O.3
Hiểu về lý thuyết projective geometry (phép chiếu qua tâm), mô hình Pinhole camera (perspective
camera)vàmộtsốmôhìnhcamerakhác(nonperspectivecameras).
L.O.3.1Nắmđượcthôngtinnàosẽbịmấtđikhichụpảnh(3Dsang2D)quaphépchiếuquatâm,khái
niệmvanishingpointvàvanishingline.
L.O.3.2  Phân biệt được sự khác nhau giữa mô hình Pinhole camera (perspective camera) và non
perspectivecameras:orthographiccamera,weakperspectivecamera,affinecamera.
L.O.3.3Hiểurõmốiquanhệhìnhhọcgiữahệtrụctọađộcamera,hệtrụctọađộảnhvàhệtrụctọađộ
thếgiớithực,nắmrõcácbướcđểdẫnramôhìnhtoáncủamộtpinholecamera(projectionmatrix).
L.O.3.4Nắmđượccácthôngsốcơbảncủamộtmáyảnhsố,ảnhhưởngcủakhẩuđộ(aperture)lên
chấtlượngảnh,tácdụngcủahệthốngthấukính,sựtánsắcánhsáng,sựméoảnh.
L.O.4
Nắmđượclýthuyếtcácbướcđểgiảirabàitoáncameracalibration.Hiểuvàsửdụngđượchàmthưviện
cvCalibrateCamera2.
L.O.4.1Hiểuđượccácbướctuầntựđểphânrãmatrânthànhtíchcácmatrânthànhphần,phương
phápsingularvaluedecomposition(SVD),cáchsửdụngSVDtrongviệcgiảihệphươngtrìnhtuyếntính
thuầnnhất(HomogeneousMxNLinearSystem).
L.O.4.2Dẫnrađượccáccôngthứcđểxácđịnhđượccácgiátrịthôngsốnộivàngoạicủacamera.
L.O.4.3Sửdụngvàhiểuđượccácbướcthựchiệncũngnhưđọchiểucácgiátrịcủacácthôngsốtrảvề
từhàmthưviệncvCalibrateCamera2.
L.O.5
Nắmđượccácnguyênlýcơbảncủaviệctạoảnh,cáchlưutrửảnh,cáchệthốngmàu,cácphéptoán
trênảnhnhịphân.
L.O.5.1Hiểukháiniệmmatrậnảnhsố,pixel,ảnhhưởngcủađộphângiảilênchấtlượngảnh.
L.O.5.2Phânbiệtvàhiểucáchlưutrửảnhnhịphân,ảnhmứcxám,ảnhmàu.Cáchchuyểnđổitừảnh
màusangảnhmứcxám,từảnhmứcxámsangảnhnhịphân.
L.O.5.3Phânbiệtđượccáchệthốngmàuvàphạmvisửdụng.Cáchchuyểnđổiqualạicáchệthống
màusửdụngcáchàmthưviện.
L.O.5.4Hiểuvàchạygiảithuậtbằngtaycácphéptoántrênảnhnhịphân:Dilation,Erosion,Opening,
Closing,giảithuậtgánnhãnđếmsảnphẩmhoặcđốitượng.
L.O.6
Cókhảnăngthựchiệncácgiảithuậtlọcsửdụngkỹthuậtcorrelationvàconvolution.
L.O.6.1Rúttríchđượccácthôngtinhửuíchtừảnh(edges,corners,blocks,…)
L.O.6.2Phânbiệtđượcsựkhácnhaucủa2phéptoánConvolutionandCorrelation.
L.O.6.3Hiểuđượcviệctínhđạohàmriêng,imagegradient,tínhtoántửLaplacianquasửdụngphép
toánConvolution.
L.O.6.4HiểuđượccáchpháthiệnbiêncủađốitượngsửdụngcácmặtnạPrewitt,Sobel,Roberts.
L.O.6.5SửdụngđượccáchàmthưviệnOpenCVđểlọcảnh,pháthiệnbiênảnh.
L.O.7
Hiểuđược bài toánfitting,giải thuật HoughTransformtrong việcxácđịnh phương trìnhđường thẳng,
đườngtròn,vàbiêndạngbấtkỳ.
L.O.7.1HiểuđượcbàitoánLineFittingGiảithuậtVottingHoughTransformchođườngthẳng.
L.O.7.2HiểuđượcgiảithuậtHoughTransformchođườngtròn.
L.O.7.3HiểuđượcgiảithuậtGeneralizedHoughTransformchobiêndạngbấtkỳ.
L.O.7.4SửdụngcáchàmthưviệnOpenCVđểxácđịnhđườngthẳng,đườngtrònvàcontours.
L.O.8
HiệnthựcđượcmộtchươngtrìnhthigiácmáytínhsửdụngOpenCV
L.O.8.1NắmđượccáccấutrúcdửliệucơbảncủathưviệnOpenCV.
L.O.8.2ĐọchiểuvàsửdụngđượccáchàmcủathưviệnOpenCVcóliênquanđếnbàitậplớn.
L.O.8.3BiếtcáchcàiđặtvàsửdụngOpenCVvớiphầnmềmmảnguồnmởEclipse.
L.O.9
Cókhảnănghọctậpsuốtđờivàlàmviệctrongmôitrườngđangành
L.O.9.1Đọcđượccáctàiliệuchuyênngànhliênquanđếnmônhọc
L.O.9.2CókhảnăngtìmkiếmcácnguồntàiliệuthamkhảotừInternet
L.O.9.3Hiểuđượcvaitròvàchứcnăngcủatừngthànhviêntrongnhóm
L.O.9.4Cókhảnăngviếtbáocáo
L.O.9.5Cókhảnăngthuyếttrình
STT Courselearningoutcomes
L.O.1
Understand the goals, the nearby fields, potential, challenges and practical applications of computer
vision.
L.O.1.1Understandwhatcomputervisionisandotherrelatedsubjects.
L.O.1.2 Realize whatkind of information canbe extracted froma image, and how computer vision is
usednow.
L.O.1.3Knowchallengingproblemsinimageprocessingsuchasviewpointvariations,illumination,scale,
deformation,occlusion,backgroundclutter,motion,objectintraclassvariation,etc.
L.O.2
Recognizethedifferencebetweengeometrictransformations
L.O.2.1Understandbasicdefinitionsandpropertiesofgeometrictransformations.
L.O.2.2  Distinguish between transformations in 2D including isometries, Similarities, Affinity, and
Projective.
L.O.3
Havetheknowledgeofprojectivegeometry,perspectivecameraandnonperspectivecamerasmodel.
L.O.3.1Understandthepreservingpropertiesofdatawithprojections,andwhatarethevanishingpoint
andthevanishingline.
L.O.3.2  Differentiate the perspective camera model (pinhole camera) from nonperspective cameras
(orthographiccamera,cameraweakperspective,affinecamera).
L.O.3.3Recognizethegeometricrelationshipbetweenthecameracoordinate,theimagecoordinateand
worldcoordinate.Beabletoknowhowtodeducethemathematicalmodelofapinholecamera(projection
matrix).
L.O.3.4  Have knowledge of the fundamental parameters of a camera, the influence of the aperture
(aperture),issueswithlenses:thedispersionoflight,imagedistortion.
L.O.4
Be able to compute the intrinsicand extrinsic cameraparameters. Havean abilityto usethe OpenCV
libraryfunctioncvCalibrateCamera2.
L.O.4.1 Understand thesingularvalue decomposition method(SVD), and have anability to use itfor
solvinghomogeneouslinearequations.
L.O.4.2Knowhowtodeterminetheintrinsicandextrinsicparametersofacamera.
L.O.4.3HaveanabilitytoapplyandanalyzetheresultsreturnedfromcvCalibrateCamera2function.
L.O.5
Haveknowledgeaboutimageformation,imagerepresentation,colorspaces,morphologicaloperations.
L.O.5.1Understandtheconceptofdigitalimage,pixel,andimageresolution.
L.O.5.2 Distinguish betweenbinary,grayscaled and colorimages. Know howto convertorchange a
colorimagetograyscaleaswellasusethresholdforconvertinggrayscaleimageintoblackwhiteone.
L.O.5.3 DifferentiatetheRGB colormodel fromthe others(CMY, YUV,YCbCr,YCoCg, HSV,L*a*b*).
Knowhowtoconvertcolorsfromonesystemtoanother.
L.O.5.4Beableto explainand understandtheConnected ComponentsLabeling algorithmaswellas
morphologicaloperations(Dilation,Erosion,Opening,andClosing)thatareappliedforbinaryimages.
L.O.6
Haveanabilitytoapplydiscretecorrelationandconvolutionoperatorsforimagefiltering.
L.O.6.1Mustbeabletoextractthemeaningfulinformationfromimages(edges,corners,blocks,...)
L.O.6.2Distinguishbetweenconvolutionandcorrelationoperators.
L.O.6.3 Know how to approximate derivativeof an image, image gradient,Laplacianwith convolution
matrix(filtermask)
L.O.6.4BeabletofindedgesofobjectsinimagesusingPrewitt,SobelorRobertsmask.
L.O.6.5HaveanabilitytousetheOpenCVfunctionstoimplementsomeedgedetectors,andperform
spatialfiltering.
L.O.7
Understandthemodelfitting,votingandHoughTransform.Usethehoughtransformationtodetectlines
andcurvesinimages.
L.O.7.1BeabletouseHoughTransformtoexploreaparameterspaceforstraightlines.
L.O.7.2UnderstandtheHoughTransformalgorithmforcirclesanddetectingcircleswithHough.
L.O.7.3HaveknowledgeofGeneralizedHoughTransformforobjectdetection.
L.O.7.4  Have an ability to use OpenCV functions to detect lines, circles and contours in an image
(HoughLines,HoughLinesP,HoughCircles,findContours,drawContoursfunction)
L.O.8
BeabletodevelopacomputervisionapplicationsusingOpenCV
L.O.8.1UnderstandthestructureoftheOpenCVlibraryaswellasthebasicdatastructuresituses.
L.O.8.2HaveanabilitytounderstandtheusedOpenCVfunctionsanddatastructuresincourseproject.
L.O.8.3KnowhowtosetupanduseOpenCVwithEclipseIdeforWindows.
L.O.9
Becapableofstudyingandworkinginmultidisciplineenvironment
L.O.9.1Becapableofreadingprofessionaldocumentswhichisrelevanttothesubject.
L.O.9.2BecapableofsearchingmaterialontheInternet.
L.O.9.3Knowtheroleandfunctionofeachmemberingroup.
L.O.9.4Becapableofwritingreport.
L.O.9.5Becapableofgivingpresentation.
5.Hướngdẫncáchhọcchitiếtcáchđánhgiámônhọc:
TàiliệuđượcđưalênBKELhàngtuần.Sinhviêntảivề,inravàmangtheokhilênlớphọc.Điểmtổngkếtmônhọc
đượcđánhgiáxuyênsuốtquátrìnhhọc
Bàitập:30%
Bàitậplớn/Tiểuluận:40%
Thi:30%
+Bàitập:
•Bàitậptrênlớp(nhóm) :30%
+Quátrình:
•Bàitậplớn :40%
+Thi:
•Thicuốikỳ :30%
Điềukiệndựthi:
Điềukiệndựthi:
Sinhviênđượcyêucầuphảithamdựgiờgiảngtrênlớpítnhất70%(sốlầnđượcđiểmdanhchuyêncần).Ngoài
ra,sinhviênphảihoànthànhtấtcảbàitậpvềnhàđúnghạncũngnhưthựchiệnđầyđủcácphầnthuyếttrìnhcủa
nhóm.Đâylànhữngđiềukiệncầnđểsinhviênđạtmônhọcnày.
Sinhviêncầnlưuýthờihạnnộpbàitập.Nộpmuộnsẽkhôngđượcchấpnhậnnếukhôngcómộtlýdochínhđáng
đãđượctrìnhbàyvàphêduyệtcủagiảngviêntrướcngàyđếnhạn.Bàitậpnộpmuộnchophépsẽbịtrừđi2điểm
đốivớimỗingàynộptrễ.
6.DựkiếndanhsáchCánbộthamgiagiảngdạy:
TS.ĐoànThếThảo
TS.LêThanhHải
TS.LêĐứcHạnh
7.Nộidungchitiết:
Tuần/
Chương
Nộidung
Chuẩnđầurachi
tiết
Hoạtđộngdạyvàhọc
Hoạtđộng
đánhgiá
Thầy/Cô Sinhviên
1
Giớithiệuvềmônhọc
ThôngtinThầy/Cô.
Cácvấnđềliênquanđếnmôn
học.
L.O.9.3Hiểuđược
vaitròvàchứcnăng
củatừngthànhviên
trongnhóm
Tựgiớithiệu.
Giớithiệulướt
quađềcươngmôn
học,phổbiếncách
đánhgiámônhọc.
Cungcấpdanh
sáchcáctàiliệu
thamkhảo.
Thựchành
tựgiớithiệu
theomẫu
đượccung
cấp.
Bàitậptrên
lớpAIC#1
L.O.9.2Cókhả Hướngdẫncách
Cáchthứcdạyvàhọc.
.
năngtìmkiếmcác
nguồntàiliệutham
khảotừInternet
càiđặtOpenCVvà
Eclipsetrên
Windows.
Ghichúbài
giảng
L.O.9.5Cókhả
năngthuyếttrình
Giớithiệucách
tạomộtprojectvới
eclipse.
Q&A
2
Giớithiệumônhọc&sáchtham
khảo
Chương1.Introductionto
ComputerVision
1.1Introductions
1.2Whatiscomputervision?
1.3Whystudycomputervision?
1.4Whycomputervision
matters?
1.5Computervisioninthereal
world
([1]Chapter1)
L.O.1.1Hiểurõthế
nàolàthịgiácmáy
tínhvàcácchuyên
ngànhliênquan.
Giớithiệumôn
họcvàcácchuyên
ngànhliênquan.
Ghichúbài
giảng
Q&A
L.O.1.2Biếtđược
cácthôngtinnàosẽ
đượcrúttríchtừảnh
vàmộtsốứngdụng
củathịgiácmáytính.
Giớithiệutầm
quantrọngcủathị
giácmáytính.
Trìnhbàymộtsố
ứngdụngcủathị
giácmáytính.
Ghichúbài
giảng.
Q&A
Tìmhiểucác
ứngdụngcủa
thịgiácmáy
tínhtrongcuộc
sống.
Bàitậptrên
lớpAIC#2
L.O.1.3Nắmđược
cáckhókhănkhixử
lýcácảnhcủamột
vậtthểmàcósự
khácnhauvềđiểm
nhìn,độsáng,tỷlệ,
độbiếndạng,độche
lấp,màunền,tốcđộ
chuyểnđộng,sựđa
dạngcủamộtvậtthể.
Trìnhbàymộtsố
khókhănkhivớithị
giácmáytính.
Ghichúbài
giảng
Q&A
3
Chương2.LightandColor
Capture
2.1ReviewoflightingColor,
reflection,andabsorption…
2.2Digitalcamera
2.3Imageformation
2.4Digitalimagesandpixels
2.5Colorimages:Bayergrid
2.6ImagesinOpenCV–Mat–
Thebasicimagecontainer.
2.7Colorspaces
2.8Convertsanimagefromone
colorspacetoanothercvtColor
function
L.O.5.1Hiểukhái
niệmmatrậnảnhsố,
pixel,ảnhhưởngcủa
độphângiảilênchất
lượngảnh.
Giớithiệuvềảnh
vàcamerasố,khái
niệmvềpixel,độ
phângiảiảnh.
Ghichúbài
giảng
L.O.3.4Nắmđược
cácthôngsốcơbản
củamộtmáyảnhsố,
ảnhhưởngcủakhẩu
độ(aperture)lênchất
lượngảnh,tácdụng
củahệthốngthấu
kính,sựtánsắcánh
sáng,sựméoảnh.
Giớithiệuvềảnh
vàcamerasố,khái
niệmvềpixel,độ
phângiảiảnh.
Q&A
L.O.5.3Phânbiệt
đượccáchệthống
màuvàphạmvisử
dụng.Cáchchuyển
đổiqualạicáchệ
thốngmàusửdụng
cáchàmthưviện.
Giớithiệuvềcác
hệthốngmàu,các
côngthứcchuyển
đổivàphạmviứng
dụng.
Ghichúbài
giảng
Q&A
Bàitậptrên
lớpAIC#3
4
Chương3.BinaryImageAnalysis
3.1Binaryimages
3.2ThresholdingPerformbasic
thresholdingoperationsusing
OpenCVfunctionthreshold
3.3Globalbinarization[Otsu’79]
3.4Localbinarization[Niblack’86]
L.O.5.2Phânbiệt
vàhiểucáchlưutrử
ảnhnhịphân,ảnh
mứcxám,ảnhmàu.
Cáchchuyểnđổitừ
ảnhmàusangảnh
mứcxám,từảnh
mứcxámsangảnh
nhịphân.
Giớithiệuvềảnh
nhịphân,mứcxám
vàảnhmàuvàmột
sốphươngpháp
biềnđổikiểuảnh.
Ghichúbài
giảng
Q&A
5
3.5Surfacefitting
3.6Morphologicaloperators:
Dilationdilatefunction,erosion
erodefunction,opening
morphologyEx(,,MORPH_OPEN,)
function,closingmorphologyEx
(,,MORPH_CLOSE,)function,
boundaryextraction.
3.7Connectedcomponents
L.O.5.4Hiểuvà
chạygiảithuậtbằng
taycácphéptoán
trênảnhnhịphân:
Dilation,Erosion,
Opening,Closing,
Giớithiệuvềcác
phéptoántrênảnh
nhịphân.Giảithuật
Ghichúbài
giảng
Q&A
Bàitậpvề
nhà
GHW#1
labeling
[2]Chapter9
[4]Chapter3
giảithuậtgánnhãn
đếmsảnphẩmhoặc
đốitượng.
gánnhãnchođối
tượng.
6
Chương4.LinearFilters
4.1Imageasfunctions.
4.2Linearsystems(Filters).
4.3Convolutionandcorrelation.
4.4Imagetransform,filters,
noise,smoothing.
4.5Calculatehistogramsof
arraysofimagesbyusingthe
OpenCVfunctioncalcHist.
L.O.6.2Phânbiệt
đượcsựkhácnhau
của2phéptoán
Convolutionand
Correlation.
Giớithiệuvề
filters,phéptoán
convolutionand
correlation.
Ghichúbài
giảng
Q&A
7
4.6Applydiverselinearfiltersto
smoothimages,blur,
GaussianBlur,medianBlur,
bilateralFilter.
4.7UsetheOpenCVfunction
filter2Dtocreatelinearfilters
4.8UsetheOpenCVfunction
Laplacian()toimplementa
discreteanalogoftheLaplacian
operator
[1]Chapter3
[2]Chapter3
[2]Chapter4
L.O.6.1Rúttrích
đượccácthôngtin
hửuíchtừảnh
(edges,corners,
blocks,…)
Giớithiệuvềcác
hàmOpenCVđể
làmmờảnh,lọc
ảnh.
Ghichúbài
giảng
Bàitậpvề
nhà
GHW#2
L.O.6.5Sửdụng
đượccáchàmthư
việnOpenCVđểlọc
ảnh,pháthiệnbiên
ảnh.
Giớithiệuvềcác
hàmOpenCVđể
làmmờảnh,lọc
ảnh.
Ghichúbài
giảng
Q&A
Bàitậpvề
nhà
GHW#2
8
Chương5.ImageGradientsand
Edges
5.1Edgedetection.Whatcauses
anedge?
5.2Derivativesandedges.
Derivativeswithconvolution
5.3Partialderivativesofan
image.Imagegradient.
5.4Assortedfinitedifference
filters
5.5Derivativetheoremof
convolution
L.O.6.3Hiểuđược
việctínhđạohàm
riêng,image
gradient,tínhtoántử
Laplacianquasử
dụngphéptoán
Convolution.
Giớithiệuvềxấp
xỉđạohàm,
gradient,toántử
Laplacevớiphép
toánconvolution.
Cannyedge
detector.
Ghichúbài
giảng
Q&A
L.O.6.4Hiểuđược
cáchpháthiệnbiên
củađốitượngsử
dụngcácmặtnạ
Prewitt,Sobel,
Roberts.
Giớithiệuvềcác
mặtnạPrewitt,
Sobel,Roberts
Ghichúbài
giảng
Q&A
Bàitậptrên
lớpAIC#4
9
5.62Dedgedetectionfilters
5.7Edgedetectionbysubtraction
5.8Cannyedgedetector
5.9UsetheOpenCVfunctions
Sobel,Scharrtocalculatethe
derivativesfromanimage
5.10UsetheOpenCVfunction
CannytoimplementtheCanny
EdgeDetector
[1]Chapter4
[2]Chapter10
[5]Chapter8
L.O.6.1Rúttrích
đượccácthôngtin
hửuíchtừảnh
(edges,corners,
blocks,…)
Giớithiệuvềcác
hàmOpenCVđể
pháthiệnbiên.
Ghichúbài
giảng
Bàitậpvề
nhà
L.O.6.5Sửdụng
đượccáchàmthư
việnOpenCVđểlọc
ảnh,pháthiệnbiên
ảnh.
Giớithiệuvềcác
hàmOpenCVđể
pháthiệnbiên.
Q&A GHW#3
10
Chương6.Fitting:Votingandthe
HoughTransform
6.1Fitting
6.2Fittinglinestoedges(Least
squares)
6.3Voting
6.4Fittinglines:Houghtransform
L.O.7.1Hiểuđược
bàitoánLineFitting
GiảithuậtVotting
HoughTransformcho
đườngthẳng.
Giớithiệuvềkhái
niệmfitting,voting
vàfittinglines.
Ghichúbài
giảng
Q&A
L.O.7.2Hiểuđược
giảithuậtHough
Transformcho
đườngtròn.
Giớithiệuvềgiải
thuậtHough
transformtìm
phươngtrình
đườngtròn.
Ghichúbài
giảng
Q&A
6.5Houghtransformforcircles.
Irisdetection
6.6GeneralizedHough
L.O.7.3Hiểuđược
giảithuật
GeneralizedHough
Giớithiệuvềgiải
thuậtGeneral
Houghtransform
Ghichúbài
giảng
11
Transform
6.7FunctionsHoughLines,
HoughLinesP,HoughCircles,
findContours,anddrawContours.
[1]Chapter4
[5]Chapter16
Transformchobiên
dạngbấtkỳ.
chobiêndạngbất
kỳ.
Q&A
L.O.7.4Sửdụng
cáchàmthưviện
OpenCVđểxácđịnh
đườngthẳng,đường
trònvàcontours.
Giớithiệuvềcác
hàmthưviện
OpenCVđểtìmvị
trícácđường.
Ghichúbài
giảng
Q&A
Bàitậpvề
nhà
GHW#4
12
Chương7.ProjectiveGeometry
andCameraModels
7.1Linearalgebraforcamera
models
7.2Projectivegeometry
Vanishingpointsandlines
7.3Pinholecameramodel
7.4Cameras&lenses
7.5Projectionmatrix
[3]Chapter6
[3]Chapter7
[4]Chapter13
L.O.2.1Hiểurõcác
địnhnghĩavàcác
tínhchấtcủacác
phépbiếnđổihình
họctrongxửlýảnh.
Giớithiệuvềcác
phépbiếnđổihình
học,phépchiếu
quatâm,
Ghichúbài
giảng
L.O.2.2Nắmđược
cácmatrậnbiếnđổi
củacácphépbiến
đổihìnhhọc:
isometries,
Similarities,Affinity,
Projective.
Vanishingpoints
andlines.
Q&A
L.O.3.1Nắmđược
thôngtinnàosẽbị
mấtđikhichụpảnh
(3Dsang2D)qua
phépchiếuquatâm,
kháiniệmvanishing
pointvàvanishing
line.
L.O.3.2Phânbiệt
đượcsựkhácnhau
giữamôhìnhPinhole
camera(perspective
camera)vànon
perspectivecameras:
orthographiccamera,
weakperspective
camera,affine
camera.
Giớithiệuvềcác
môhìnhcamera.
Ghichúbài
giảng
Q&A
L.O.3.3Hiểurõmối
quanhệhìnhhọc
giữahệtrụctọađộ
camera,hệtrụctọa
độảnhvàhệtrụctọa
độthếgiớithực,nắm
rõcácbướcđểdẫn
ramôhìnhtoáncủa
mộtpinholecamera
(projectionmatrix).
Giớithiệuvềcác
môhìnhpinholevà
projectionmatrix.
Ghichúbài
giảng
Q&A
13
Chương8.CameraCalibration
8.1Projectivecamera
8.2Goalofcalibration
8.3Hierarchyofcamera
L.O.4.1Hiểuđược
cácbướctuầntựđể
phânrãmatrân
thànhtíchcácma
trânthànhphần,
phươngpháp
singularvalue
decomposition
(SVD),cáchsửdụng
SVDtrongviệcgiải
hệphươngtrình
tuyếntínhthuầnnhất
(HomogeneousMxN
LinearSystem).
Giớithiệuvề
SVD,mụctiêucủa
việccalibcamera.
Ghichúbài
giảng
Q&A
Bàitậptrên
lớpAIC#5
L.O.4.2Dẫnra
đượccáccôngthức
đểxácđịnhđượccác
giátrịthôngsốnộivà
ngoạicủacamera.
Giớithiệuvềcách
dẫnracôngthức
xácđịnhcácthông
sốnộivàngoạicủa
camera.
Ghichúbài
giảng
Q&A
8.4Calibrationproblem–
Extractingcameraparameters.
L.O.4.3Sửdụngvà
hiểuđượccácbước
14
8.5Cameracalibrationwith
functioncalibrateCamera.
[3]Chapter8
[4]Chapter13
thựchiệncũngnhư
đọchiểucácgiátrị
củacácthôngsốtrả
vềtừhàmthưviện
cvCalibrateCamera2.
Giớithiệuvềhàm
calibrateCamera
Ghichúbài
giảng
Q&A
Bàitậpvề
nhà
GHW#5
15
Báocáoproject,ôntập
1)HumanEyeDetectionand
Tracking.
2)Pháthiệncửaravào.
3)MotionDetectOpticalFlow
4)Nhậndạng,phânloạisản
phẩm.
5)Nhậndạng,theodõivậtthể.
6)Nhậndạngvântay.
7)Nhậndạngbảngsốxe.
8)FaceDetectionandTracking
L.O.8.1Nắmđược
cáccấutrúcdửliệu
cơbảncủathưviện
OpenCV.
L.O.8.2Đọchiểuvà
sửdụngđượccác
hàmcủathưviện
OpenCVcóliênquan
đếnbàitậplớn.
L.O.8.3Biếtcách
càiđặtvàsửdụng
OpenCVvớiphần
mềmmảnguồnmở
Eclipse.
L.O.9.1Đọcđược
cáctàiliệuchuyên
ngànhliênquanđến
mônhọc
8.Thôngtinliênhệ:
Bộmôn/Khoaphụtrách Cơđiệntử
Vănphòng 210B11
Điệnthoại 08386472565870
Giảngviênphụtrách PhạmCôngBằng;ĐoànThếThảo
Email cbpham@hcmut.edu.vn;thaodt@hcmut.edu.vn
Tp.HồChíMinh,ngày31tháng08năm2016
TRƯỞNGKHOA CHỦNHIỆMBỘMÔN CBPHỤTRÁCHLẬPĐỀCƯƠNG

Preview text:

Đại Học Quốc Gia TP.HCM
Vietnam National University – HCMC
Trường Đại Học Bách Khoa
Ho Chi Minh City University of Technology Khoa Cơ Khí
Faculty of Mechanical Engineering Đề cương môn học
Nhập môn thị giác máy tính (Computer Vision) Số tín chỉ 3(3.0.6) MSMH ME4201 Số tiết Tổng: 45 LT: 45 TH: 0 TN: 0 BTL/TL: x Môn không xếp TKB Tỉ lệ đánh giá BT: 30% TN: KT: BTL/TL: 40% Thi: 30% Hình thức đánh giá ­ Quá trình ­ Thi: viết, 75 phút Môn tiên quyết Môn học trước Môn song hành CTĐT ngành Kỹ thuật Cơ điện tử Trình độ đào tạo Đại học Cấp độ môn học Năm 4 Ghi chú khác
1. Mục tiêu của môn học:
­ Giới thiệu cho học viên các kiến thức, kỹ năng cơ bản về thị giác máy tính để học viên có thể đọc và hiểu những
nghiên cứu về thị giác máy tính.
­ Học viên biết cách calib một camera số. Hiểu và hiện thực được các phương pháp tách biên, các giải thuật lọc,
các giải thuật fitting và sử dụng thư viện mã nguồn mở OpenCV.
­ Học viên sẽ có khả năng ứng dụng thị giác máy tính trong lĩnh vực cơ điện tử. Aims:
­ To introduce the basic concepts to read and understand the advanced topics and current research literature in computer vision.
­ To introduce the basic issues and techniques used to solve those. Students should be able to calibrate a digital
camera, understand the various edge detectors, implement several image filtering algorithms, understand the
different ways that the shape of an object can be recovered and use OpenCV (Intel® Open Source Computer Vision
Library) which is cross­platform and free for use.
­ To enable students to work or carry out some practical computer vision projects.
2. Nội dung tóm tắt môn học:
Mục đích của môn học thị giác máy tính là đưa ra các phương pháp để máy tính có thể hiểu và xây dựng lại được
mô hình thế giới thực từ các ảnh thu được từ camera. Môn học sẽ tìm hiểu về những khái niệm cơ bản về máy ảnh
số, cách tạo ảnh, các hệ thống màu, mô hình toán của camera và phương pháp để xác định các thông số nội và
ngoại của camera. Môn học sẽ trình bày các phương pháp chuyển đổi ảnh từ mức xám sang nhị phân, một số toán
tử cơ bản trên ảnh nhị phân cũng như ứng dụng của việc phân tích ảnh nhị phân trong thực tế. Trình bày các giải
thuật lọc, tách biên, fitting, các phép biến đổi ảnh và mối quan hệ giữa phép toán convolution với các phép đạo
hàm, biến đổi ảnh. Môn học cũng sẽ tìm hiểu về thư viện mã nguồn mở OpenCV và xây dựng một số ứng dụng thị
giác máy tính. Code của các ví dụ mẫu được thể hiện bằng C++. Course outline:
In computer vision, the goal is to develop methods that enable a machine to “understand” or analyze images and
videos. In this introductory computer vision course, we wil explore various fundamental topics in the area, including
cameras and projection models, camera calibration, image formation, binary image analysis, feature detection,
segmentation. In addition, student wil learn how to use the OpenCV library to build computer vision applications.
3. Tài liệu học tập: Sách, Giáo trình chính:
[1] Computer Vision: Algorithms and Applications, by Richard Szeliski, Springer, 2010.
[2] Gonzalez and Woods, Digital Image Processing, 2nd Edition, Prentice Hal , 2002.
[3] Learning OpenCV, Gary Bradski and Adrian Kaehler, O’Reil y Media, Inc., 2008.
[4] Computer Vision, by Linda G. Shapiro and George C. Stockman, Prentice Hal , 2001 Sách tham khảo:
[5] Computer Vision: A Modern Approach, by D.A. Forsyth and J. Ponce, Prentice Hal , 2002.
4. Hiểu biết, kỹ năng, thái độ cần đạt được sau khi học môn học: STT Chuẩn đầu ra môn học
Hiểu rõ mục tiêu, các chuyên ngành liên quan, tiềm năng, thách thức và ứng dụng thực tế của thị giác máy tính.
L.O.1.1 ­ Hiểu rõ thế nào là thị giác máy tính và các chuyên ngành liên quan.
L.O.1 L.O.1.2 ­ Biết được các thông tin nào sẽ được rút trích từ ảnh và một số ứng dụng của thị giác máy tính.
L.O.1.3 ­ Nắm được các khó khăn khi xử lý các ảnh của một vật thể mà có sự khác nhau về điểm nhìn, độ
sáng, tỷ lệ, độ biến dạng, độ che lấp, màu nền, tốc độ chuyển động, sự đa dạng của một vật thể.
Hiểu và phân biệt được sự khác nhau giữa các phép biến đổi hình học.
L.O.2 L.O.2.1 ­ Hiểu rõ các định nghĩa và các tính chất của các phép biến đổi hình học trong xử lý ảnh.
L.O.2.2 ­ Nắm được các ma trận biến đổi của các phép biến đổi hình học: isometries, Similarities, Affinity, Projective.
Hiểu về lý thuyết projective geometry (phép chiếu qua tâm), mô hình Pinhole camera (perspective
camera) và một số mô hình camera khác (non­perspective cameras).
L.O.3.1 ­ Nắm được thông tin nào sẽ bị mất đi khi chụp ảnh (3D sang 2D) qua phép chiếu qua tâm, khái
niệm vanishing point và vanishing line.
L.O.3 L.O.3.2 ­ Phân biệt được sự khác nhau giữa mô hình Pinhole camera (perspective camera) và non­
perspective cameras: orthographic camera, weak perspective camera, affine camera.
L.O.3.3 ­ Hiểu rõ mối quan hệ hình học giữa hệ trục tọa độ camera, hệ trục tọa độ ảnh và hệ trục tọa độ
thế giới thực, nắm rõ các bước để dẫn ra mô hình toán của một pinhole camera (projection matrix).
L.O.3.4 ­ Nắm được các thông số cơ bản của một máy ảnh số, ảnh hưởng của khẩu độ (aperture) lên
chất lượng ảnh, tác dụng của hệ thống thấu kính, sự tán sắc ánh sáng, sự méo ảnh.
Nắm được lý thuyết các bước để giải ra bài toán camera calibration. Hiểu và sử dụng được hàm thư viện cvCalibrateCamera2.
L.O.4.1 ­ Hiểu được các bước tuần tự để phân rã ma trân thành tích các ma trân thành phần, phương
pháp singular value decomposition (SVD), cách sử dụng SVD trong việc giải hệ phương trình tuyến tính
L.O.4 thuần nhất (Homogeneous MxN Linear System).
L.O.4.2 ­ Dẫn ra được các công thức để xác định được các giá trị thông số nội và ngoại của camera.
L.O.4.3 ­ Sử dụng và hiểu được các bước thực hiện cũng như đọc hiểu các giá trị của các thông số trả về
từ hàm thư viện cvCalibrateCamera2.
Nắm được các nguyên lý cơ bản của việc tạo ảnh, cách lưu trử ảnh, các hệ thống màu, các phép toán trên ảnh nhị phân.
L.O.5.1 ­ Hiểu khái niệm ma trận ảnh số, pixel, ảnh hưởng của độ phân giải lên chất lượng ảnh.
L.O.5.2 ­ Phân biệt và hiểu cách lưu trử ảnh nhị phân, ảnh mức xám, ảnh màu. Cách chuyển đổi từ ảnh
L.O.5 màu sang ảnh mức xám, từ ảnh mức xám sang ảnh nhị phân.
L.O.5.3 ­ Phân biệt được các hệ thống màu và phạm vi sử dụng. Cách chuyển đổi qua lại các hệ thống
màu sử dụng các hàm thư viện.
L.O.5.4 ­ Hiểu và chạy giải thuật bằng tay các phép toán trên ảnh nhị phân: Dilation, Erosion, Opening,
Closing, giải thuật gán nhãn đếm sản phẩm hoặc đối tượng.
Có khả năng thực hiện các giải thuật lọc sử dụng kỹ thuật correlation và convolution.
L.O.6.1 ­ Rút trích được các thông tin hửu ích từ ảnh (edges, corners, blocks, …)
L.O.6.2 ­ Phân biệt được sự khác nhau của 2 phép toán Convolution and Correlation.
L.O.6 L.O.6.3 ­ Hiểu được việc tính đạo hàm riêng, image gradient, tính toán tử Laplacian qua sử dụng phép toán Convolution.
L.O.6.4 ­ Hiểu được cách phát hiện biên của đối tượng sử dụng các mặt nạ Prewitt, Sobel, Roberts.
L.O.6.5 ­ Sử dụng được các hàm thư viện OpenCV để lọc ảnh, phát hiện biên ảnh.
Hiểu được bài toán fitting, giải thuật Hough Transform trong việc xác định phương trình đường thẳng,
đường tròn, và biên dạng bất kỳ.
L.O.7.1 ­ Hiểu được bài toán Line Fitting ­ Giải thuật Votting Hough Transform cho đường thẳng.
L.O.7 L.O.7.2 ­ Hiểu được giải thuật Hough Transform cho đường tròn.
L.O.7.3 ­ Hiểu được giải thuật Generalized Hough Transform cho biên dạng bất kỳ.
L.O.7.4 ­ Sử dụng các hàm thư viện OpenCV để xác định đường thẳng, đường tròn và contours.
Hiện thực được một chương trình thi giác máy tính sử dụng OpenCV
L.O.8.1 ­ Nắm được các cấu trúc dử liệu cơ bản của thư viện OpenCV.
L.O.8 L.O.8.2 ­ Đọc hiểu và sử dụng được các hàm của thư viện OpenCV có liên quan đến bài tập lớn.
L.O.8.3 ­ Biết cách cài đặt và sử dụng OpenCV với phần mềm mả nguồn mở Eclipse.
Có khả năng học tập suốt đời và làm việc trong môi trường đa ngành
L.O.9.1 ­ Đọc được các tài liệu chuyên ngành liên quan đến môn học
L.O.9.2 ­ Có khả năng tìm kiếm các nguồn tài liệu tham khảo từ Internet
L.O.9 L.O.9.3 ­ Hiểu được vai trò và chức năng của từng thành viên trong nhóm
L.O.9.4 ­ Có khả năng viết báo cáo
L.O.9.5 ­ Có khả năng thuyết trình STT Course learning outcomes
Understand the goals, the nearby fields, potential, chal enges and practical applications of computer vision.
L.O.1.1 ­ Understand what computer vision is and other related subjects.
L.O.1 L.O.1.2 ­ Realize what kind of information can be extracted from a image, and how computer vision is used now.
L.O.1.3 ­ Know chal enging problems in image processing such as viewpoint variations, il umination, scale,
deformation, occlusion, background clutter, motion, object intra­class variation, etc.
Recognize the difference between geometric transformations
L.O.2 L.O.2.1 ­ Understand basic definitions and properties of geometric transformations.
L.O.2.2 ­ Distinguish between transformations in 2D including isometries, Similarities, Affinity, and Projective.
Have the knowledge of projective geometry, perspective camera and non­perspective cameras model.
L.O.3.1 ­ Understand the preserving properties of data with projections, and what are the vanishing point and the vanishing line.
L.O.3.2 ­ Differentiate the perspective camera model (pinhole camera) from non­perspective cameras
L.O.3 (orthographic camera, camera weak perspective, affine camera).
L.O.3.3 ­ Recognize the geometric relationship between the camera coordinate, the image coordinate and
world coordinate. Be able to know how to deduce the mathematical model of a pinhole camera (projection matrix).
L.O.3.4 ­ Have knowledge of the fundamental parameters of a camera, the influence of the aperture
(aperture), issues with lenses: the dispersion of light, image distortion.
Be able to compute the intrinsic and extrinsic camera parameters. Have an ability to use the OpenCV
library function cvCalibrateCamera2.
L.O.4.1 ­ Understand the singular value decomposition method (SVD), and have an ability to use it for
L.O.4 solving homogeneous linear equations.
L.O.4.2 ­ Know how to determine the intrinsic and extrinsic parameters of a camera.
L.O.4.3 ­ Have an ability to apply and analyze the results returned from cvCalibrateCamera2 function.
Have knowledge about image formation, image representation, color spaces, morphological operations.
L.O.5.1 ­ Understand the concept of digital image, pixel, and image resolution.
L.O.5.2 ­ Distinguish between binary, gray­scaled and color images. Know how to convert or change a
L.O.5 color image to grayscale as wel as use threshold for converting grayscale image into black­white one.
L.O.5.3 ­ Differentiate the RGB color model from the others (CMY, YUV, YCbCr, YCoCg, HSV, L*a*b*).
Know how to convert colors from one system to another.
L.O.5.4 ­ Be able to explain and understand the Connected Components Labeling algorithm as wel as
morphological operations (Dilation, Erosion, Opening, and Closing) that are applied for binary images.
Have an ability to apply discrete correlation and convolution operators for image filtering.
L.O.6.1 ­ Must be able to extract the meaningful information from images (edges, corners, blocks, ...)
L.O.6.2 ­ Distinguish between convolution and correlation operators.
L.O.6.3 ­ Know how to approximate derivative of an image, image gradient, Laplacian with convolution L.O.6 matrix (filter mask)
L.O.6.4 ­ Be able to find edges of objects in images using Prewitt, Sobel or Roberts mask.
L.O.6.5 ­ Have an ability to use the OpenCV functions to implement some edge detectors, and perform spatial filtering.
Understand the model fitting, voting and Hough Transform. Use the hough transformation to detect lines and curves in images.
L.O.7.1 ­ Be able to use Hough Transform to explore a parameter space for straight lines.
L.O.7 L.O.7.2 ­ Understand the Hough Transform algorithm for circles and detecting circles with Hough.
L.O.7.3 ­ Have knowledge of Generalized Hough Transform for object detection.
L.O.7.4 ­ Have an ability to use OpenCV functions to detect lines, circles and contours in an image
(HoughLines, HoughLinesP, HoughCircles, findContours, drawContours function)
Be able to develop a computer vision applications using OpenCV
L.O.8.1 ­ Understand the structure of the OpenCV library as wel as the basic data structures it uses.
L.O.8 L.O.8.2 ­ Have an ability to understand the used OpenCV functions and data structures in course project.
L.O.8.3 ­ Know how to set up and use OpenCV with Eclipse Ide for Windows.
Be capable of studying and working in multidiscipline environment
L.O.9.1 ­ Be capable of reading professional documents which is relevant to the subject.
L.O.9.2 ­ Be capable of searching material on the Internet.
L.O.9 L.O.9.3 ­ Know the role and function of each member in group.
L.O.9.4 ­ Be capable of writing report.
L.O.9.5 ­ Be capable of giving presentation.
5. Hướng dẫn cách học ­ chi tiết cách đánh giá môn học:
Tài liệu được đưa lên BKEL hàng tuần. Sinh viên tải về, in ra và mang theo khi lên lớp học. Điểm tổng kết môn học
được đánh giá xuyên suốt quá trình học ­ Bài tập: 30%
­ Bài tập lớn/Tiểu luận: 40% ­ Thi: 30% + Bài tập:
• Bài tập trên lớp (nhóm) : 30% + Quá trình: • Bài tập lớn : 40% + Thi: • Thi cuối kỳ : 30% Điều kiện dự thi: Điều kiện dự thi:
­ Sinh viên được yêu cầu phải tham dự giờ giảng trên lớp ít nhất 70% (số lần được điểm danh chuyên cần). Ngoài
ra, sinh viên phải hoàn thành tất cả bài tập về nhà đúng hạn cũng như thực hiện đầy đủ các phần thuyết trình của
nhóm. Đây là những điều kiện cần để sinh viên đạt môn học này.
­ Sinh viên cần lưu ý thời hạn nộp bài tập. Nộp muộn sẽ không được chấp nhận nếu không có một lý do chính đáng
đã được trình bày và phê duyệt của giảng viên trước ngày đến hạn. Bài tập nộp muộn cho phép sẽ bị trừ đi 2 điểm
đối với mỗi ngày nộp trễ.
6. Dự kiến danh sách Cán bộ tham gia giảng dạy: ­ TS. Đoàn Thế Thảo ­ TS. Lê Thanh Hải ­ TS. Lê Đức Hạnh
7. Nội dung chi tiết: Tuần/ Chuẩn đầu ra chi Hoạt động dạy và học Hoạt động Chương Nội dung tiết Thầy/Cô Sinh viên đánh giá ­ Tự giới thiệu. ­ Giới thiệu lướt ­ Thực hành L.O.9.3 ­ Hiểu được
qua đề cương môn tự giới thiệu
vai trò và chức năng học, phổ biến cách theo mẫu Bài tập trên của từng thành viên
đánh giá môn học. được cung lớp AIC #1 Giới thiệu về môn học trong nhóm ­ Cung cấp danh cấp. sách các tài liệu ­ Thông tin Thầy/Cô. tham khảo. 1
­ Các vấn đề liên quan đến môn học. L.O.9.2 ­ Có khả ­ Hướng dẫn cách
­ Cách thức dạy và học. năng tìm kiếm các
cài đặt OpenCV và ­ Ghi chú bài . nguồn tài liệu tham Eclipse trên giảng khảo từ Internet Windows. L.O.9.5 ­ Có khả ­ Giới thiệu cách năng thuyết trình
tạo một project với ­ Q&A eclipse.
L.O.1.1 ­ Hiểu rõ thế ­ Giới thiệu môn ­ Ghi chú bài nào là thị giác máy học và các chuyên giảng tính và các chuyên ngành liên quan. ­ Q&A ngành liên quan.
Giới thiệu môn học & sách tham ­ Ghi chú bài khảo L.O.1.2 ­ Biết được ­ Giới thiệu tầm giảng. Chương 1. Introduction to
các thông tin nào sẽ quan trọng của thị ­ Q&A Computer Vision
được rút trích từ ảnh giác máy tính.
­ Tìm hiểu các Bài tập trên 1.1 Introductions và một số ứng dụng
­ Trình bày một số ứng dụng của lớp AIC #2 1.2 What is computer vision?
của thị giác máy tính. ứng dụng của thị thị giác máy 2 1.3 Why study computer vision? giác máy tính. tính trong cuộc 1.4 Why computer vision sống. matters? L.O.1.3 ­ Nắm được
1.5 Computer vision in the real các khó khăn khi xử world lý các ảnh của một vật thể mà có sự
­ Trình bày một số ­ Ghi chú bài ([1] Chapter 1) khác nhau về điểm
khó khăn khi với thị giảng nhìn, độ sáng, tỷ lệ, giác máy tính. ­ Q&A độ biến dạng, độ che lấp, màu nền, tốc độ chuyển động, sự đa
dạng của một vật thể. L.O.5.1 ­ Hiểu khái ­ Giới thiệu về ảnh
niệm ma trận ảnh số, và camera số, khái ­ Ghi chú bài pixel, ảnh hưởng của giảng Chương 2. Light and Color niệm về pixel, độ độ phân giải lên chất Capture phân giải ảnh. lượng ảnh.
2.1 Review of lighting ­ Color, reflection, and absorption… L.O.3.4 ­ Nắm được 2.2 Digital camera các thông số cơ bản 2.3 Image formation
của một máy ảnh số, ­ Giới thiệu về ảnh 2.4 Digital images and pixels
ảnh hưởng của khẩu và camera số, khái 2.5 Color images: Bayer grid
độ (aperture) lên chất niệm về pixel, độ ­ Q&A 3
2.6 Images in OpenCV– Mat –
lượng ảnh, tác dụng phân giải ảnh. The basic image container. của hệ thống thấu 2.7 Color spaces kính, sự tán sắc ánh 2.8 Converts an image from one sáng, sự méo ảnh.
color space to another cvtColor L.O.5.3 ­ Phân biệt function được các hệ thống ­ Giới thiệu về các màu và phạm vi sử
hệ thống màu, các ­ Ghi chú bài Bài tập trên dụng. Cách chuyển công thức chuyển giảng lớp AIC #3 đổi qua lại các hệ
đổi và phạm vi ứng ­ Q&A thống màu sử dụng dụng. các hàm thư viện. L.O.5.2 ­ Phân biệt
Chương 3. Binary Image Analysis và hiểu cách lưu trử 3.1 Binary images ảnh nhị phân, ảnh ­ Giới thiệu về ảnh
3.2 Thresholding ­ Perform basic mức xám, ảnh màu.
nhị phân, mức xám ­ Ghi chú bài 4 thresholding operations using Cách chuyển đổi từ
và ảnh màu và một giảng OpenCV function threshold ảnh màu sang ảnh số phương pháp ­ Q&A
3.3 Global binarization [Otsu’79] mức xám, từ ảnh biền đổi kiểu ảnh.
3.4 Local binarization [Niblack’86] mức xám sang ảnh nhị phân. 3.5 Surface fitting 3.6 Morphological operators:
Dilation­ dilate function, erosion­ erode function, opening­ L.O.5.4 ­ Hiểu và
morphologyEx(,,MORPH_OPEN,) chạy giải thuật bằng
function, closing­ morphologyEx tay các phép toán ­ Giới thiệu về các (,,MORPH_CLOSE,) function, trên ảnh nhị phân:
phép toán trên ảnh ­ Ghi chú bài Bài tập về 5 boundary extraction. Dilation, Erosion,
nhị phân. Giải thuật giảng nhà 3.7 Connected components Opening, Closing, ­ Q&A GHW #1 labeling giải thuật gán nhãn gán nhãn cho đối
đếm sản phẩm hoặc tượng. [2] Chapter 9 đối tượng. [4] Chapter 3 Chương 4.Linear Filters 4.1 Image as functions. 4.2 Linear systems (Filters). L.O.6.2 ­ Phân biệt ­ Giới thiệu về
4.3 Convolution and correlation. được sự khác nhau filters, phép toán ­ Ghi chú bài 6 4.4 Image transform, filters, của 2 phép toán convolution and giảng noise, smoothing. Convolution and correlation. ­ Q&A 4.5 Calculate histograms of Correlation. arrays of images by using the OpenCV function calcHist.
4.6 Apply diverse linear filters to smooth images, blur, L.O.6.1 ­ Rút trích ­ Giới thiệu về các GaussianBlur, medianBlur, được các thông tin hàm OpenCV để ­ Ghi chú bài Bài tập về bilateralFilter. hửu ích từ ảnh làm mờ ảnh, lọc giảng nhà 4.7 Use the OpenCV function (edges, corners, ảnh. GHW #2
filter2D to create linear filters blocks, …) 7 4.8 Use the OpenCV function Laplacian() to implement a
discrete analog of the Laplacian L.O.6.5 ­ Sử dụng operator được các hàm thư
­ Giới thiệu về các ­ Ghi chú bài Bài tập về viện OpenCV để lọc hàm OpenCV để giảng nhà [1] Chapter 3 ảnh, phát hiện biên làm mờ ảnh, lọc ­ Q&A GHW #2 [2] Chapter 3 ảnh. ảnh. [2] Chapter 4 L.O.6.3 ­ Hiểu được ­ Giới thiệu về xấp
Chương 5. Image Gradients and việc tính đạo hàm xỉ đạo hàm, Edges riêng, image gradient, toán tử ­ Ghi chú bài
5.1 Edge detection. What causes gradient, tính toán tử Laplace với phép giảng an edge? Laplacian qua sử toán convolution. ­ Q&A 5.2 Derivatives and edges. dụng phép toán Canny edge 8 Derivatives with convolution Convolution. detector. 5.3 Partial derivatives of an image. Image gradient. L.O.6.4 ­ Hiểu được 5.4 Assorted finite difference cách phát hiện biên
­ Giới thiệu về các ­ Ghi chú bài filters của đối tượng sử mặt nạ Prewitt, giảng Bài tập trên 5.5 Derivative theorem of dụng các mặt nạ Sobel, Roberts ­ Q&A lớp AIC #4 convolution Prewitt, Sobel, Roberts. 5.6 2D edge detection filters
5.7 Edge detection by subtraction L.O.6.1 ­ Rút trích 5.8 Canny edge detector được các thông tin
­ Giới thiệu về các ­ Ghi chú bài Bài tập về 5.9 Use the OpenCV functions hửu ích từ ảnh hàm OpenCV để giảng nhà Sobel, Scharr to calculate the (edges, corners, phát hiện biên. derivatives from an image blocks, …) 9 5.10 Use the OpenCV function Canny to implement the Canny L.O.6.5 ­ Sử dụng Edge Detector được các hàm thư ­ Giới thiệu về các viện OpenCV để lọc hàm OpenCV để ­ Q&A GHW #3 [1] Chapter 4 ảnh, phát hiện biên phát hiện biên. [2] Chapter 10 ảnh. [5] Chapter 8 L.O.7.1 ­ Hiểu được
bài toán Line Fitting ­ ­ Giới thiệu về khái ­ Ghi chú bài
Chương 6. Fitting: Voting and the Giải thuật Votting niệm fitting, voting giảng Hough Transform
Hough Transform cho và fitting lines. ­ Q&A 6.1 Fitting đường thẳng. 10
6.2 Fitting lines to edges (Least squares) L.O.7.2 ­ Hiểu được ­ Giới thiệu về giải 6.3 Voting giải thuật Hough thuật Hough ­ Ghi chú bài
6.4 Fitting lines: Hough transform Transform cho transform tìm giảng đường tròn. phương trình ­ Q&A đường tròn.
6.5 Hough transform for circles. L.O.7.3 ­ Hiểu được ­ Giới thiệu về giải Iris detection giải thuật thuật General ­ Ghi chú bài 6.6 Generalized Hough Generalized Hough Hough transform giảng Transform Transform cho biên cho biên dạng bất ­ Q&A 6.7 Functions HoughLines, dạng bất kỳ. kỳ. 11 HoughLinesP, HoughCircles, L.O.7.4 ­ Sử dụng
findContours, and drawContours. ­ Giới thiệu về các các hàm thư viện hàm thư viện ­ Ghi chú bài Bài tập về OpenCV để xác định giảng nhà [1] Chapter 4 OpenCV để tìm vị đường thẳng, đường ­ Q&A GHW #4 [5] Chapter 16 trí các đường. tròn và contours.
L.O.2.1 ­ Hiểu rõ các ­ Giới thiệu về các định nghĩa và các
phép biến đổi hình ­ Ghi chú bài tính chất của các học, phép chiếu giảng phép biến đổi hình qua tâm, học trong xử lý ảnh. L.O.2.2 ­ Nắm được các ma trận biến đổi của các phép biến Vanishing points đổi hình học: and lines. ­ Q&A isometries, Similarities, Affinity, Projective. L.O.3.1 ­ Nắm được
Chương 7. Projective Geometry thông tin nào sẽ bị and Camera Models mất đi khi chụp ảnh 7.1 Linear algebra for camera (3D sang 2D) qua models phép chiếu qua tâm, 7.2 Projective geometry ­ khái niệm vanishing Vanishing points and lines point và vanishing 12 7.3 Pinhole camera model line. 7.4 Cameras & lenses L.O.3.2 ­ Phân biệt 7.5 Projection matrix được sự khác nhau giữa mô hình Pinhole [3] Chapter 6 camera (perspective ­ Ghi chú bài [3] Chapter 7 camera) và non­
­ Giới thiệu về các giảng [4] Chapter 13
perspective cameras: mô hình camera. ­ Q&A orthographic camera, weak perspective camera, affine camera. L.O.3.3 ­ Hiểu rõ mối quan hệ hình học giữa hệ trục tọa độ camera, hệ trục tọa
­ Giới thiệu về các ­ Ghi chú bài
độ ảnh và hệ trục tọa mô hình pinhole và giảng
độ thế giới thực, nắm projection matrix. ­ Q&A rõ các bước để dẫn ra mô hình toán của một pinhole camera (projection matrix). L.O.4.1 ­ Hiểu được các bước tuần tự để phân rã ma trân thành tích các ma trân thành phần, phương pháp ­ Giới thiệu về ­ Ghi chú bài singular value SVD, mục tiêu của giảng Bài tập trên decomposition lớp AIC #5 Chương 8. Camera Calibration
việc calib camera. ­ Q&A (SVD), cách sử dụng 13 8.1 Projective camera SVD trong việc giải 8.2 Goal of calibration hệ phương trình 8.3 Hierarchy of camera tuyến tính thuần nhất (Homogeneous MxN Linear System). L.O.4.2 ­ Dẫn ra ­ Giới thiệu về cách
được các công thức dẫn ra công thức ­ Ghi chú bài
để xác định được các xác định các thông giảng
giá trị thông số nội và số nội và ngoại của ­ Q&A ngoại của camera. camera. 8.4 Calibration problem – L.O.4.3 ­ Sử dụng và Extracting camera parameters. hiểu được các bước 8.5 Camera calibration with thực hiện cũng như ­ Ghi chú bài Bài tập về 14 ­ Giới thiệu về hàm function calibrateCamera. đọc hiểu các giá trị calibrateCamera giảng nhà của các thông số trả ­ Q&A GHW #5 [3] Chapter 8 về từ hàm thư viện [4] Chapter 13 cvCalibrateCamera2. L.O.8.1 ­ Nắm được các cấu trúc dử liệu cơ bản của thư viện OpenCV. Báo cáo project, ôn tập L.O.8.2 ­ Đọc hiểu và 1) Human Eye Detection and sử dụng được các Tracking. hàm của thư viện 2) Phát hiện cửa ra vào. OpenCV có liên quan
3) Motion Detect ­ Optical Flow đến bài tập lớn. 15
4) Nhận dạng, phân loại sản phẩm. L.O.8.3 ­ Biết cách
5) Nhận dạng, theo dõi vật thể. cài đặt và sử dụng 6) Nhận dạng vân tay. OpenCV với phần
7) Nhận dạng bảng số xe. mềm mả nguồn mở 8) Face Detection and Tracking Eclipse. L.O.9.1 ­ Đọc được các tài liệu chuyên ngành liên quan đến môn học
8. Thông tin liên hệ: Bộ môn/Khoa phụ trách Cơ điện tử Văn phòng 210B11 Điện thoại 0838647256 ­ 5870 Giảng viên phụ trách
Phạm Công Bằng; Đoàn Thế Thảo E­mail
cbpham@hcmut.edu.vn; thaodt@hcmut.edu.vn
Tp. Hồ Chí Minh, ngày 31 tháng 08 năm 2016 TRƯỞNG KHOA CHỦ NHIỆM BỘ MÔN
CB PHỤ TRÁCH LẬP ĐỀ CƯƠNG