ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਪ੍ਰੋਜੈਕਟ

ਪ੍ਰੋਜੈਕਟ ਦਾ GitHub ਰੇਪੋ

ਬਾਰੇ

ਇਹ ਰੇਪੋ ਉਹ ਸਾਰੇ ਕੋਡਿੰਗ ਪ੍ਰੋਜੈਕਟ (ਲੈਬ) ਦਿਖਾਉਂਦਾ ਹੈ ਜੋ ਮਹਮੇਤ ਅਤੇ ਜੀਨ ਨੇ CSCI437 ਵਿੱਚ ਦਾਖਿਲ ਹੋਣ ਦੌਰਾਨ ਫਾਲ 2020 ਸੈਮੇਸਟਰ ‘ਚ ਕੋਲੋਰਾਡੋ ਸਕੂਲ ਆਫ ਮਾਈਨਜ਼ ਵਿੱਚ ਕੰਮ ਕੀਤੇ, ਜੋ ਕਿ ਅਗਸਤ 28, 2020, ਤੋਂ ਦਿਸੰਬਰ 14, 2020 ਤੱਕ ਦੀ ਮਿਆਦ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ। ਇਹ ਲੈਬਾਂ Python, OpenCV, ਅਤੇ ਮੁਢਲੇ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਧਾਰਨਾਵਾਂ ਸਿੱਖਣ ਲਈ ਇੱਕ ਵਿਸਤ੍ਰਿਤ ਮੰਚ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਸਨ।

ਕਲਾਸ ਬਾਰੇ

ਮੈਂ ਫਾਲ 2020 ਸੈਮੇਸਟਰ ਦੌਰਾਨ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਲਈ ਪਰਿਚਯ (CSCI437) ਲਿਆ। ਇਸ ਦੌਰਾਨ, ਡਾ. ਵਿਲੀਅਮ ਹੋਫ ਅਤੇ ਡਾ. ਟੌਮ ਵਿਲੀਅਮਜ਼ ਨੇ ਕਲਾਸ ਸਿਖਾਈ। CSCI437। ਇੱਥੇ CSCI437 ਲਈ ਅਧਿਕਾਰਿਕ ਕਲਾਸ ਵਰਣਨ ਹੈ:

(I) Computer vision is the process of using computers to acquire images, transform images, and extract symbolic descriptions from images. This course provides an introduction to this field, covering topics in image formation, feature extraction, location estimation, and object recognition. Design ability and hands-on projects will be emphasized, using popular software tools. The course will be of interest both to those who want to learn more about the subject and to those who just want to use computer imaging techniques. Must be Senior level standing. 3 hours lecture; 3 semester hours. Prerequisite: (MATH201 or MATH334 or EENG311),and,MATH332,and,(CSCI200 or CSCI261).

ਸਹਿਯੋਗ

ਇੱਥੇ ਕੁਝ Python ਸਕ੍ਰਿਪਟਾਂ ਅਤੇ/ਜਾਂ ਕੋਡ ਦੇ ਸੈਗਮੈਂਟ ਹਨ ਜੋ CSCI437 ਕਲਾਸ ਨੇ ਲੈਕਚਰ ਦੌਰਾਨ, ਸਲਾਈਡਾਂ ਵਿੱਚ, ਜਾਂ Canvas ਰਾਹੀਂ ਮੁਹੱਈਆ ਕਰਵਾਏ। CSCI437 ਕਲਾਸ ਕੋਲੋਰਾਡੋ ਸਕੂਲ ਆਫ ਮਾਈਨਜ਼ ‘ਤੇ ਪ੍ਰਦਾਨ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਲੈਬਾਂ ਹੇਠ ਲਿਖੇ ਸਾਥੀਆਂ ਨਾਲ ਕੀਤੀਆਂ ਗਈਆਂ:

  • ਜੀਨ ਦੁਓਂਗ
  • ਮਹਮੇਤ ਯਿਲਮਾਜ਼

ਲੈਬ ਵੇਰਵੇ

ਲੈਬ 1

ਲੈਬ 1 OpenCV ਨਾਲ Python ਦੀ ਵਰਤੋਂ ਦੇ ਬੁਨਿਆਦੀ ਤੱਤਾਂ ‘ਤੇ ਕੇਂਦ੍ਰਿਤ ਹੈ। ਭਾਗੀਦਾਰਾਂ ਤੋਂ توقع ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਉਹ ਇੱਕ Python ਪ੍ਰੋਗ੍ਰਾਮ ਲਿਖਣ ਜੋ ਇੱਕ ਵੀਡੀਓ ਫਾਈਲ ਪੜ੍ਹਦਾ ਹੈ, ਵੀਡੀਓ ਦੇ ਹਰ ਫ੍ਰੇਮ ‘ਤੇ ਚੌਕੋਰ ਬਣਾਉਂਦੇ ਚਾਰ ਬਿੰਦੂ ਪ੍ਰੋਜੈਕਟ ਕਰਦਾ ਹੈ, ਅਤੇ ਹਰ ਬਿੰਦੂ ਦੀ Z ਕੋਆਰਡੀਨੇਟ ਨੂੰ ਧੀਰੇ-ਧੀਰੇ ਸੇਟ ਕਰਕੇ ਚੌਕੋਰ ਨੂੰ ਦੂਰ ਹੇਠਾਂ ਜਾ ਰਹੇ ਤਰ੍ਹਾਂ ਨਕਲ ਕਰੇ। ਇਸਦੇ ਇਲਾਵਾ, ਹਰ ਫ੍ਰੇਮ ‘ਤੇ ਫ੍ਰੇਮ ਨੰਬਰ ਦਿੱਖਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਗ੍ਰਾਫਿਕ ਓਵਰਲੇ ਤੇ ਆਖਰੀ ਵੀਡੀਓ ਅਸੈਸਮੈਂਟ ਲਈ ਅਪਲੋਡ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ।

ਲੈਬ 2

ਲੈਬ 2 ਤਸਵੀਰ ਪਰਿਵਰਤਨਾਂ ਨਾਲ ਸਬੰਧਤ ਹੈ, ਖਾਸ ਕਰਕੇ “XYZ ਨਿਰਧਾਰਿਤ ਕੋਣ” ਕਨਵੈਨਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ X, Y, ਅਤੇ Z ਧੁਰੀਆਂ ‘ਤੇ ਘੁੰਮਣ ‘ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਿਤ ਕਰਦਾ ਹੈ। ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਰੋਟੇਸ਼ਨ ਮੈਟ੍ਰਿਕਸ ਕੈਲਕੁਲੇਟ ਕਰਨ, ਕੈਮਰਾ ਪੋਜ਼ ਲਈ ਹੋਮੋਜੀਨੀਅਸ ਟਰਾਂਸਫਾਰਮੇਸ਼ਨ ਮੈਟ੍ਰਿਕਸ ਲਗਾਉਣ, ਇੱਕ ਕੈਲੀਬਰੇਸ਼ਨ ਮੈਟ੍ਰਿਕਸ ਬਣਾਉਣ, ਅਤੇ OpenCV ਦੀ line ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨੁੱਕਤੇ ਇੱਕ ਚਿੱਤਰ ‘ਤੇ ਪ੍ਰੋਜੈਕਟ ਕਰਕੇ ਇੱਕ ਜਾਣੂ ਵਸਤੂ ਬਣਾਉਣ ਦੀ ਜ਼ਿੰਮੇਵਾਰੀ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਲੈਬ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਵਿੱਚ ਕੈਮਰਾ ਭੂਗੋਲ ਅਤੇ ਟਰਾਂਸਫਾਰਮੇਸ਼ਨ ਮੈਟ੍ਰਿਕਸ ਦੀ ਸਮਝ ਨੂੰ ਜ਼ੋਰ ਦਿੰਦੀ ਹੈ।

ਲੈਬ 3

ਲੈਬ 3 ਟੈਂਪਲੇਟ মিলਾਉਣ (template matching) ਬਾਰੇ ਹੈ, ਜਿੱਥੇ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਨਾਰਮਲਾਈਜ਼ਡ ਕ੍ਰਾਸ ਕੋਰੈਲੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਮੂਵੀ ਫਾਈਲ ਦੇ ਹਰ ਫ੍ਰੇਮ ਵਿੱਚ ਇੱਕ ਟੈਂਪਲੇਟ ਉਪ-ਚਿੱਤਰ ਨੂੰ ਟਰੈਕ ਕਰਨ ਦਾ ਕੰਮ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਅਸਾਈਨਮੈਂਟ ਵਿੱਚ ਯੂਜ਼ਰ ਨੂੰ ਮੂਵੀ ਦੀ ਪਹਿਲੀ ਇਮેજ ਵਿੱਚੋਂ ਇੱਕ ਟੈਂਪਲੇਟ ਚੁਣਨ ਦੀ ਆਗਿਆ ਦੇਣੀ, ਇਸ ਟੈਂਪਲੇਟ ਨੂੰ ਅਗਲੇ ਚਿੱਤਰਾਂ ਵਿੱਚ ਟਰੈਕ ਕਰਨ, ਹਰ ਚਿੱਤਰ ‘ਤੇ ਟੈਂਪਲੇਟ ਦੀ ਥਾਂ ਦਰਸਾਉਣ ਲਈ ਰੈਕਟੈਂਗਲ ਖਿੱਚਣ, ਅਤੇ ਇਹ ਥਾਂਵਾਂ ਦਰਸਾਉਂਦੇ ਆਉਟਪੁਟ ਮੂਵੀ ਫਾਈਲ ਬਣਾਉਣ ਸ਼ਾਮਲ ਹੈ। ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਵੱਖ-ਵੱਖ ਟੈਂਪਲੇਟਾਂ ਨਾਲ ਪਰਯੋਗ ਕਰਨ ਦੀ ਪਰੋਤਸਾਹਨਾ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਜੋ ਉਹ ਸਮਝ ਸਕਣ ਕਿ ਕਿਹੜਾ ਟੈਂਪਲੇਟ ਸਭ ਤੋਂ ਵਧੀਆ ਟਰੈਕਿੰਗ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਅਤੇ ਕਿਉਂ, ਅਤੇ ਜਦੋਂ ਮੇਚ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਪਛਾਣੇ ਜਾਂਦਿਆਂ ਹਨ ਤਾਂ ਕੋਰੈਲੇਸ਼ਨ ਸਕੋਰਾਂ ‘ਤੇ ਚਰਚਾ ਕਰਨ ਲਈ।

ਲੈਬ 4

ਲੈਬ 4 HSV ਰੰਗ ਸਪੇਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੰਗ ਵਿਭਾਜਨ (color segmentation) ‘ਤੇ ਕੇਂਦ੍ਰਿਤ ਹੈ, ਜੋ ਕਿ ਲੈਕਚਰਾਂ ਵਿੱਚ ਇਸਦੀ ਪ੍ਰਭਾਵਸ਼ੀਲਤਾ ਲਈ ਚਰਚਾ ਕੀਤੀ ਗਈ ਤਕਨੀਕ ਹੈ। ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਦਿੱਤੀਆਂ ਤਸਵੀਰਾਂ ਵਿੱਚੋਂ ਸਟਾਪ ਸਾਈਨ ਪਿਕਸਲਾਂ ਨੂੰ ਸੈਗਮੈਂਟ ਕਰਨ ਲਈ ਥ੍ਰੈਸ਼ਹੋਲਡ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ Python/OpenCV ਪ੍ਰੋਗ੍ਰਾਮ ਲਿਖਣਾ ਹੁੰਦਾ ਹੈ। ਅਸਾਈਨਮੈਂਟ ਵਿੱਚ ਉਹਨਾਂ ਨੂੰ ਉਹ ਥ੍ਰੈਸ਼ਹੋਲਡ ਮੁੱਲ ਲੱਭਣੇ ਹੁੰਦੇ ਹਨ ਜੋ ਸਟਾਪ ਸਾਈਨ ਪਿਕਸਲਾਂ ਨੂੰ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕੇ ਨਾਲ ਡਿਟੈਕਟ ਕਰਦੇ ਹਨ, ਨਤੀਜੇ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਲਈ ਮੋਰਫੋਲੋਜੀਕਲ ਓਪਰੇਸ਼ਨਾਂ ਕਰਨੀ, ਅਤੇ ਸੈਗਮੈਂਟ ਕੀਤੀਆਂ ਤਸਵੀਰਾਂ ਨੂੰ Python ਪ੍ਰੋਗ੍ਰਾਮ ਅਤੇ ਵਰਤੇ ਗਏ ਥ੍ਰੈਸ਼ਹੋਲਡ ਅਤੇ ਮੋਰਫੋਲੋਜੀਕਲ ਓਪਰੇਸ਼ਨ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਨਾਲ ਸਬਮਿਟ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ।

ਲੈਬ 5

ਲੈਬ 5 ਵਿੱਚ ਮੌਜੂਦਾ ਚਿੱਤਰ ਦੇ ਕਿਸੇ ਨਿਰਧਾਰਿਤ ਇਲਾਕੇ ਵਿੱਚ ਇੱਕ ਨਵੀਂ ਇਮੇਜ ਟੈਕਸਚਰ ਦਾਖਲ ਕਰਨ ਦਾ ਕੰਮ ਸ਼ਾਮਲ ਹੈ ਤਾਂ ਜੋ ਪ੍ਰੋਜੈਕਸ਼ਨ ਸਹੀ ਲੱਗੇ। ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਪਲੇਨ ਰੀਪਲੇਸਮੈਂਟ (plane replacement) ਕਿਹਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਇਸ ਲਈ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ projective transform (homography) ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪੈਂਦੀ ਹੈ ਤਾਂ ਜੋ ਨਵੀਂ ਇਮੇਜ ਨੂੰ ਮੌਜੂਦਾ ਚਿੱਤਰ ਦੇ ਸਮਤਲ ਖੇਤਰ ‘ਤੇ ਮੈਪ ਕੀਤਾ ਜਾ ਸਕੇ। ਲੈਬ ਹੋਮੋਗਰਾਫੀ ਦੇ ਵਾਸਤਵਿਕ ਅਨੁਪ੍ਰਯੋਗ ‘ਤੇ ਜ਼ੋਰ ਦਿੰਦੀ ਹੈ ਤਾਂ ਜੋ ਚਿੱਤਰ ਸਮੱਗਰੀ ਨੂੰ ਪਰਸਪੈਕਟਿਵ ਸਹੀਤਾ ਬਣਾ ਕੇ ਸੋਧਿਆ ਜਾ ਸਕੇ। ਵਿਦਿਆਰਥੀਆਂ ਤੋਂ ਉਮੀਦ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਉਹ ਮੂਲ ਚਿੱਤਰ, ਰੀਪਲੇਸਮੈਂਟ ਟੈਕਸਚਰ ਵਾਲਾ ਚਿੱਤਰ, ਮਿਲਾਇਆ ਹੋਇਆ ਚਿੱਤਰ, ਅਤੇ ਆਪਣਾ Python ਪ੍ਰੋਗ੍ਰਾਮ ਸਬਮਿਟ ਕਰਨ।

ਲੈਬ 6

ਲੈਬ 6 ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਇੱਕ ਚਿੱਤਰ ਵਿੱਚ ਪੰਜ ਵਿਰੋਧੀ ਕੇਂਦਰੀ ਸਰਕਲਾਂ (contrasting concentric circles - CCCs) ਤੋਂ ਬਣੇ ਟਾਰਗਟ ਦਾ ਪਤਾ ਲਗਾਉਣ ਅਤੇ ਉਸਦੀ ਪੋਜ਼ ਗਣਨਾ ਕਰਨ ਲਈ ਸਿਖਾਉਂਦੀ ਹੈ। ਕੰਮ ਵਿੱਚ OpenCV ਦੀ ਵਰਤੋਂ ਕਰਕੇ CCC ਟਾਰਗਟ ਡਿਟੈਕਟ ਕਰਨਾ, ਉਨ੍ਹਾਂ ਨੂੰ ਸਹੀ ਕ੍ਰਮ ਵਿੱਚ ਆਰਡਰ ਕਰਨਾ, OpenCV ਦੀ solvePnP() ਫੰਕਸ਼ਨ ਨਾਲ ਪੋਜ਼ ਗਣਨਾ ਕਰਨਾ, ਅਤੇ ਚਿੱਤਰ ‘ਤੇ ਕੋਆਰਡੀਨੇਟ ਐਕਸਿਸ ਅਤੇ ਪੋਜ਼ ਖਿੱਚਣਾ ਸ਼ਾਮਲ ਹੈ। ਲੈਬ ਟਾਰਗਟ ਡਿਟੈਕਸ਼ਨ, ਪੋਜ਼ ਅਨੁਮਾਨ ਅਤੇ ਵਿਜ਼ੂਅਲ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟਿੰਗ ਜਿਵੇਂ ਅਸੂਲਾਂ ਦੇ ਅਨੁਪ੍ਰਯੋਗ ‘ਤੇ ਜ਼ੋਰ ਦਿੰਦੀ ਹੈ।

ਲੈਬ 7

ਲੈਬ 7 ਇਮੇਜਾਂ ਵਿਚਕਾਰ SIFT ਫੀਚਰਾਂ ਦੀ ਡਿਟੈਕਸ਼ਨ ਅਤੇ ਮੈਚਿੰਗ ਦੇ ਗੇਰਨਾ ਚੋਰ ਉੱਤੇ ਕੇਂਦ੍ਰਿਤ ਹੈ। ਉਦੇਸ਼ ਇੱਕ ਚਿੱਤਰ ਤੋਂ ਦੂਜੇ ਚਿੱਤਰ ਵਿੱਚ SIFT ਫੀਚਰਾਂ ਦੇ ਸਹੀ ਮੇਚਾਂ ਦੀ ਪਛਾਣ ਕਰਨਾ ਅਤੇ ਇਨ੍ਹਾਂ ਮੇਚਾਂ ਦੀ ਸਹੀਤਾ (accuracy) ਦਾ ਵਿਸਲੇਸ਼ਣ ਕਰਨਾ ਹੈ। ਲੈਬ ਵਿੱਚ ਦਿੱਤੇ ਗਏ Python ਕੋਡ ਅਤੇ ਡੇਟਾਸੈੱਟ ਤਸਵੀਰਾਂ ਦੀ ਵਰਤੋਂ, ਮੇਚ ਡਿਟੈਕਸ਼ਨ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ الگੋਰੀਥਮ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਅਨੁਕੂਲ ਕਰਨਾ, ਅਤੇ ਫੀਚਰ ਮੈਚਿੰਗ ਪ੍ਰਕਿਰਿਆ ਦੀ ਪ੍ਰਦਰਸ਼ਨ ਮਾਪਣ ਲਈ precision ਅਤੇ recall ਮੈਟਰਿਕਸ ਦੀ ਗਣਨਾ ਕਰਨੀ ਸ਼ਾਮਲ ਹੈ। ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਆਪਣਾ Python ਪ੍ਰੋਗ੍ਰਾਮ ਅਤੇ ਵੱਖ-ਵੱਖ ਪੈਰਾਮੀਟਰ ਸੈਟਿੰਗਾਂ ਲਈ ਗਣਨਾ ਕੀਤੀ precision ਅਤੇ recall ਮੁੱਲ ਸਪੁਰਦ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।

ਲੈਬ 8

ਲੈਬ 8 ਫੀਚਰ ਮੈਚਿੰਗ ਅਤੇ affine transformation ਫਿਟਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਟ੍ਰੇਨਿੰਗ ਇਮੇਜ ਤੋਂ ਓਬਜੈਕਟ ਨੂੰ ਡਿਟੈਕਟ ਅਤੇ ਕਵਰLay (overlay) ਕਰਨ ‘ਤੇ ਕੇਂਦ੍ਰਿਤ ਹੈ। ਲੈਬ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਸਥਿਤੀਆਂ ਵਿੱਚ ਵਸਤੂ ਦਾ ਪਤਾ ਲਗਾਉਣਾ, ਫਾਲਸ ਪੌਜ਼ਟੀਵ ਘਟਾਉਣ ਲਈ inlier ਮੇਚਾਂ ਦੀ ਘੱਟੋ-ਘੱਟ ਗਿਣਤੀ ਥ੍ਰੈਸ਼ਹੋਲਡ ਨੂੰ ਅਨੁਕੂਲ ਕਰਨਾ, ਅਤੇ ਆਬਜੈਕਟ ਡਿਟੈਕਸ਼ਨ ਸਿਸਟਮ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਮਾਪਣ ਲਈ precision, recall, ਅਤੇ accuracy ਮੈਟਰਿਕਸ ਦੀ ਗਣਨਾ ਕਰਨੀ ਸ਼ਾਮਲ ਹੈ। ਵਿਦਿਆਰਥੀਆਂ ਤੋਂ ਉਮੀਦ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਉਹ ਦਿੱਤੇ ਗਏ Python ਕੋਡ ਨੂੰ ਸੋਧ ਕੇ ਚਲਾਉਣ, ਵੱਖ-ਵੱਖ ਹਾਲਾਤਾਂ ਹੇਠਾਂ ਸਿਸਟਮ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਦਾ ਵਿਸਲੇਸ਼ਣ ਕਰਨ, ਅਤੇ ਆਪਣੇ ਨਤੀਜੇ ਅਤੇ ਸੋਧੇ ਹੋਏ ਕੋਡ ਨੂੰ ਸਬਮਿਟ ਕਰਨ।

ਲੈਬ 9

ਲੈਬ 9 ਵਿੱਚ ਇੱਕ ਟ੍ਰੇਨਿੰਗ ਇਮੇਜ ਵਿੱਚ ਵਸਤੂ ‘ਤੇ ਐਨੋਟੇਸ਼ਨ ਬਿੰਦੂ ਰੱਖਣੇ ਅਤੇ ਬਾਦ ਵਿੱਚ ਆਉਣ ਵਾਲੀਆਂ ਕਵੈਰੀ ਇਮੇਜਾਂ ‘ਤੇ ਉਹਨਾਂ ਬਿੰਦੂਆਂ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਆਪਣੇ ਆਪ ਦਰਸਾਉਣਾ ਸ਼ਾਮਲ ਹੈ। ਇਹ ਲੈਬ ਫੀਚਰ ਨਿਕਾਸ, ਅੰਬੀਗੂਅਸ ਮੇਚਜ਼ ਨੂੰ ਹਟਾਉਣ ਲਈ ਰੇਸ਼ਿਓ ਟੈਸਟ ਨਾਲ ਮੈਚਿੰਗ, ਆਊਟਲਾਇਰਾਂ ਨੂੰ ਹਟਾਉਣ ਲਈ RANSAC ਦੀ ਵਰਤੋਂ ਨਾਲ 2D affine transformation ਫਿਟ ਕਰਨ, ਅਤੇ ਟ੍ਰੇਨਿੰਗ ਤੋਂ ਕਵੈਰੀ ਇਮੇਜਾਂ ‘ਤੇ ਐਨੋਟੇਸ਼ਨ ਬਿੰਦੂਆਂ ਨੂੰ ਮੈਪ ਕਰਨ ਲਈ ਟਰਾਂਸਫਾਰਮੇਸ਼ਨ ਲਾਗੂ ਕਰਨ ‘ਤੇ ਜ਼ੋਰ ਦਿੰਦੀ ਹੈ। ਅਹਮ ਕੰਮ inlier ਮੇਚਾਂ ਦੀ ਗਿਣਤੀ ਦੀ ਥ੍ਰੈਸ਼ਹੋਲਡ ਨੂੰ ਸੋਧਣਾ ਹੈ ਤਾਂ ਜੋ ਫਾਲਸ ਪੌਜ਼ਟੀਵ ਅਤੇ ਨੈਗਟਿਵ ਵਿਚਕਾਰ ਸੰਤੁਲਨ ਬਣਾਇਆ ਜਾ ਸਕੇ, ਉੱਚਤਮ ਸ਼ੁੱਧਤਾ ਨਾਲ ਇਮੇਜਾਂ ਦੀ ਸਹੀ ਵਰਗੀਕਰਨ ਲੱਭਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾਵੇ।

ਲੈਬ 10

ਲੈਬ 10 ਰੇਖਾ ਖੰਡਾਂ (line segments) ਲੱਭਣ ਅਤੇ ਇੱਕ ਚਿੱਤਰ ਵਿੱਚ ਸਮান্তਰੀ ਲਾਈਨਾਂ ਦੇ ਸੈੱਟਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ Hough ਟਰਾਂਸਫਾਰਮ ਦੀ ਵਰਤੋਂ ‘ਤੇ ਨਿਰਧਾਰਿਤ ਹੈ। ਇਹ OpenCV ਦੀ cv2.HoughLinesP() ਫੰਕਸ਼ਨ ਰਾਹੀਂ ਪ੍ਰੋਬੈਬਿਲਿਸਟਿਕ Hough Transform ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਉਹ ਲਾਈਨ ਖੰਡ ਲੱਭ ਸਕੇ ਜੋ ਆਪਣੇ ਐਂਡਪੋਇੰਟਸ ਦੁਆਰਾ ਦਰਸਾਏ ਜਾਂਦੇ ਹਨ। ਲੈਬ ਵਿੱਚ ਇਹ ਵੀ ਸ਼ਾਮਲ ਹੈ ਕਿ ਇਨ੍ਹਾਂ ਲਾਈਨ ਖੰਡਾਂ ਦੇ ਦਿਸ਼ਾ ਵੇਕਟਰਾਂ ਦਾ ਵਿਸਲੇਸ਼ਣ ਕਰਕੇ ਵੈਨਿਸ਼ਿੰਗ ਪੁਆਇੰਟ ਲੱਭੇ ਜਾਣ, ਜਿਸਦਾ ਉਦੇਸ਼ 3D ਅੰਤਰਲ ਦੁਨੀਆਂ ਵਿੱਚ ਸਮਾਂਤਰ ਲਾਈਨਾਂ ਦੀ ਦਿਸ਼ਾ ਨੂੰ ਸਮਝਣਾ ਹੈ ਜਿਵੇਂ ਉਹ 2D ਇਮੇਜ ਪਲੇਨ ‘ਤੇ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ। ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਟੈਸਟ ਤਸਵੀਰਾਂ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਕੇ ਸਮਾਂਤਰ ਲਾਈਨ ਖੰਡ ਲੱਭਣ, ਪਤਾ ਲਗਾਉਣ ਲਈ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਪਰਯੋਗ ਕਰਨ, ਅਤੇ ਆਪਣੇ ਨਤੀਜੇ Python ਪ੍ਰੋਗ੍ਰਾਮ ਦੇ ਨਾਲ ਸਬਮਿਟ ਕਰਨ ਦਾ ਕੰਮ ਦਿੱਤਾ ਗਿਆ ਹੈ।

ਨੋਟਸ

  • ਇਹ ਸਕ੍ਰਿਪਟਾਂ/ਲੈਬਾਂ ਚਲਾਉਣ ਲਈ ਤੁਹਾਨੂੰ ਹੇਠ ਲਿਖੇ ਤੀਜੀ ਪੱਖ ਦੇ Python ਪੈਕੇਜਾਂ ਦੀ ਲੋੜ ਪਏਗੀ: cv2 & numpy.
  • ਕੁਝ ਲੈਬਾਂ ਲਈ ਤੁਹਾਨੂੰ cv2 ਦੇ ਕਿਸੇ ਖਾਸ ਵਰਜ਼ਨ ਦੀ ਲੋੜ ਪੈ ਸਕਦੀ ਹੈ। ਬਦਕਿਸਮਤੀ ਨਾਲ, ਲੋੜਾਂ ਦਾ ਦਸਤਾਵੇਜ਼ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਇਸਲਾਈ ਲਈ ਤੁਸੀਂ ਖੁਦ ਇਹ ਜਾਨਚ ਕਰਨੀ ਪਵੇਗੀ। ਜੇ ਤੁਸੀਂ ਇਹ ਪਤਾ ਲਗਾਉ ਲੈਂਦੇ ਹੋ ਜਾਂ ਅਟਕ ਜਾਂਦੇ ਹੋ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ issues form ‘ਤੇ ਰਿਪੋਰਟ ਕਰੋ।