এই নিবন্ধটি একটি অংশ হিসাবে প্রকাশিত হয়েছিল ডেটা সায়েন্স ব্লগাথন
ভূমিকা
সবাইকে অভিবাদন! যদিও সাইবারপাঙ্ক এখনও আমাদের জীবনে ততটা প্রবেশ করেনি, এবং নিউরো ইন্টারফেসগুলি আদর্শ থেকে অনেক দূরে, LiDAR ম্যানিপুলেটরদের ভবিষ্যতের পথে প্রথম পর্যায়ে পরিণত হতে পারে। অতএব, ছুটির দিনে বিরক্ত না হওয়ার জন্য, আমি একটি কম্পিউটারের নিয়ন্ত্রণ এবং সম্ভবত, কোনও যন্ত্র, খননকারী, মহাকাশযান, ড্রোন বা চুলা পর্যন্ত কিছুটা কল্পনা করার সিদ্ধান্ত নিয়েছি।
মূল ধারণাটি হল মাউসটিকে সরানো, পুরো হাতটি না সরানো, তবে কেবল তর্জনীটি, যা আপনাকে কীবোর্ড থেকে হাত না নিয়ে মেনুতে চালানোর অনুমতি দেবে, বোতাম টিপুন এবং হটকিগুলির সাথে একত্রে পরিণত হবে। আসল কীবোর্ড নিনজা! আপনি সোয়াইপিং বা স্ক্রলিং অঙ্গভঙ্গি যোগ করলে কি হবে? মনে হয় বোমা থাকবে! তবে এই মুহূর্ত পর্যন্ত আমাদের এখনও কয়েক বছর অপেক্ষা করতে হবে)
আসুন ভবিষ্যতের ম্যানিপুলেটরের আমাদের প্রোটোটাইপ একত্রিত করা শুরু করি
তুমি কি চাও:
-
LiDAR Intel Realsense L515 সহ ক্যামেরা।
-
পাইথনে প্রোগ্রাম করার ক্ষমতা
-
স্কুলের গণিতটা একটু মনে রাখবেন
-
মনিটর ওরফে ট্রাইপডে ক্যামেরার জন্য মাউন্ট করুন
আমরা অ্যালিএক্সপ্রেস সহ একটি ট্রাইপডে ক্যামেরা সংযুক্ত করি, এটি খুব সুবিধাজনক, হালকা ওজনের এবং সস্তা বলে প্রমাণিত হয়েছে)
আমরা কীভাবে এবং কিসের উপর একটি প্রোটোটাইপ তৈরি করব তা খুঁজে বের করি
এই কাজটি সম্পন্ন করার জন্য অনেক পন্থা আছে। আপনি নিজেই ডিটেক্টর বা হ্যান্ড সেগমেন্টেশনকে প্রশিক্ষণ দিতে পারেন, ডান হাতের ফলস্বরূপ চিত্রটি কেটে ফেলতে পারেন এবং তারপরে ফেসবুক গবেষণা থেকে ছবিটিতে এই দুর্দান্ত ভাণ্ডারটি প্রয়োগ করতে পারেন, একটি দুর্দান্ত ফলাফল পান বা এটি আরও সহজ করে তুলতে পারেন।
মিডিয়া পাইপ সংগ্রহস্থল ব্যবহার করতে, এই লিঙ্ক পড়ার পরে, আপনি বুঝতে পারেন যে এটি আজকের জন্য সেরা বিকল্পগুলির মধ্যে একটি।
প্রথমত, সবকিছু ইতিমধ্যেই বাক্সের বাইরে রয়েছে - সমস্ত পূর্বশর্ত বিবেচনা করে ইনস্টলেশন এবং লঞ্চ 30 মিনিট সময় নেবে।
দ্বিতীয়ত, একটি শক্তিশালী ডেভেলপমেন্ট টিমকে ধন্যবাদ, তারা শুধুমাত্র স্টেট অফ আর্ট ইন হ্যান্ড পোজ এস্টিমেশন গ্রহণ করে না বরং একটি সহজে বোঝা যায় এমন API প্রদান করে।
তৃতীয়ত, নেটওয়ার্কটি CPU-তে চালানোর জন্য প্রস্তুত, তাই এন্ট্রি থ্রেশহোল্ড ন্যূনতম।
সম্ভবত, আপনি জিজ্ঞাসা করবেন কেন আমি এখানে আসিনি এবং এই প্রতিযোগিতার বিজয়ীদের সংগ্রহস্থল ব্যবহার করিনি। প্রকৃতপক্ষে, আমি তাদের সমাধানটি কিছু বিশদভাবে অধ্যয়ন করেছি, তারা বেশ প্রোড-প্রস্তুত, লক্ষ লক্ষ গ্রিডের কোনও স্ট্যাক নেই, ইত্যাদি। তবে সবচেয়ে বড় সমস্যা, এটি আমার কাছে মনে হয়, তারা গভীরতার চিত্রগুলির সাথে কাজ করে। যেহেতু এগুলি শিক্ষাবিদ, তাই তারা ম্যাটল্যাবের মাধ্যমে সমস্ত ডেটা রূপান্তর করতে দ্বিধা করেনি, উপরন্তু, যে রেজোলিউশনে গভীরতা চিত্রিত করা হয়েছিল তা আমার কাছে ছোট বলে মনে হয়েছিল। এটি ফলাফলের উপর গভীর প্রভাব ফেলতে পারে। অতএব, মনে হচ্ছে সবচেয়ে সহজ উপায় হল RGB ছবির মূল পয়েন্টগুলি পাওয়া এবং XY স্থানাঙ্কগুলির দ্বারা ডেপথ ফ্রেমে Z-অক্ষ বরাবর মান নেওয়া। এখন কাজটি খুব বেশি কিছু অপ্টিমাইজ করা নয়, তাই আমরা এটি করব কারণ এটি বিকাশের দৃষ্টিকোণ থেকে দ্রুততর।
স্কুলের গণিত মনে পড়ছে
যেমনটি আমি ইতিমধ্যেই লিখেছি, মাউস কার্সারটি যেখানে থাকা উচিত সেই বিন্দুর স্থানাঙ্ক পেতে, আমাদের আঙুলের ফ্যালানক্সের দুটি মূল বিন্দুর মধ্য দিয়ে যাওয়া একটি রেখা তৈরি করতে হবে এবং লাইনের ছেদ বিন্দু খুঁজে বের করতে হবে। মনিটরের সমতল।
ছবিটি পরিকল্পিতভাবে মনিটরের সমতল এবং লাইনটি ছেদ করে তা দেখায়। আপনি এখানে গণিত দেখতে পারেন.
দুটি বিন্দু ব্যবহার করে, আমরা স্থানের একটি সরল রেখার একটি প্যারামেট্রিক উপস্থাপনা পাই।
আমি স্কুলের গণিত পাঠ্যক্রমের উপর খুব বেশি ফোকাস করব না।
একটি ক্যামেরা দিয়ে কাজ করার জন্য একটি লাইব্রেরি ইনস্টল করা
এটি সম্ভবত এই কাজের সবচেয়ে কঠিন অংশ। দেখা যাচ্ছে, উবুন্টুর ক্যামেরার সফ্টওয়্যারটি খুবই অশোধিত, উদারপন্থী বোধটি কেবল সব ধরণের বাগ, গ্লিচ এবং একটি খঞ্জনীর সাথে নাচতে পরিপূর্ণ।
এখন অবধি, আমি ক্যামেরার অদ্ভুত আচরণকে পরাস্ত করতে পারিনি, কখনও কখনও এটি শুরুতে পরামিতিগুলি লোড করে না।
কম্পিউটার রিস্টার্ট দিলেই ক্যামেরা একবার কাজ করে!!! কিন্তু একটি সমাধান আছে: প্রতিটি লঞ্চের আগে, ক্যামেরার একটি সফ্টওয়্যার হার্ড রিসেট করুন, USB রিসেট করুন এবং সম্ভবত সবকিছু ঠিক হয়ে যাবে। যাইহোক, উইন্ডোজ 10 এর জন্য সবকিছু ঠিক আছে। এটা অদ্ভুত যে ডেভেলপাররা উইন্ডোজের উপর ভিত্তি করে রোবট কল্পনা করে =)
উবুন্টু 20 এর অধীনে প্রকৃত অর্থ পেতে, এটি করুন:
$ sudo apt-get install libusb-1.0-0-dev তারপর cmake পুনরায় চালান এবং ইনস্টল করা। এখানে is একটি সম্পূর্ণ রেসিপি যা কাজ করেছে উন্নত আমি: $ sudo apt-get install libusb-1.0-0-dev $ git ক্লোন https://github.com/IntelRealSense/librealsense.git $cd librealsense/ $mkdir বিল্ড && cd বিল্ড
বিভিন্ন ধরণের থেকে সংগ্রহ করে, এটি কমবেশি স্থিতিশীল হবে। প্রযুক্তিগত সহায়তার সাথে এক মাসের যোগাযোগের মাধ্যমে জানা গেছে যে আপনাকে উবুন্টু 16 ইনস্টল করতে হবে বা কষ্ট পেতে হবে। আমি নিজেই এটি বেছে নিয়েছি, আপনি কি জানেন।
আমরা নিউরাল নেটওয়ার্কের জটিলতা বুঝতে অবিরত
এবার আঙুল-মাউস অপারেশনের আরেকটি ভিডিও দেখা যাক। অনুগ্রহ করে মনে রাখবেন যে পয়েন্টারটি এক জায়গায় দাঁড়াতে পারে না এবং এটি যেমন ছিল, উদ্দেশ্যযুক্ত বিন্দুর চারপাশে ভাসতে পারে। একই সময়ে, আমি সহজেই এটিকে আমার প্রয়োজনীয় শব্দে নির্দেশ করতে পারি, তবে একটি অক্ষর দিয়ে এটি আরও কঠিন, আমাকে সাবধানে কার্সারটি সরাতে হবে:
এটি, যেমন আপনি বুঝতে পেরেছেন, এটি আমার হাত কাঁপছে না, ছুটির দিনে আমি নিউ ইংল্যান্ড ডিপিএ শুধুমাত্র এক মগ পান করেছি =) এটি লিডার থেকে প্রাপ্ত মানগুলির উপর ভিত্তি করে মূল পয়েন্ট এবং জেড-কোঅর্ডিনেটগুলির ধ্রুবক ওঠানামা সম্পর্কে।
আসুন কাছ থেকে দেখুন:
মিডিয়া পাইপ থেকে আমাদের SOTA-তে, অবশ্যই কম ওঠানামা আছে, কিন্তু সেগুলিও বিদ্যমান। যেহেতু এটি পরিণত হয়েছে, তারা বর্তমান ফ্রেম এবং ট্রেন নেটওয়ার্কে অতীত ফ্রেমের হিটম্যাপ থেকে প্রকিড ভানিয়া ব্যবহার করে এর সাথে লড়াই করছে – এটি আরও স্থিতিশীলতা দেয়, কিন্তু 100% নয়।
এছাড়াও, আমার কাছে মনে হচ্ছে, মার্কআপের নির্দিষ্টতা একটি ভূমিকা পালন করে। এতগুলি ফ্রেমে একই মার্কআপ করা খুব কমই সম্ভব, ফ্রেমের রেজোলিউশন সর্বত্র আলাদা এবং খুব বড় নয় তা উল্লেখ না করে। এছাড়াও, আমরা আলোর ঝিকিমিকি দেখতে পাই না, যা সম্ভবত, অপারেশনের বিভিন্ন সময়কাল এবং ক্যামেরার এক্সপোজারের কারণে ধ্রুবক নয়। এবং নেটওয়ার্কটিও হিটম্যাপ থেকে একটি স্যান্ডউইচ ফেরত দেয় স্ক্রিনের মূল পয়েন্টের সংখ্যার সমান, এই টেনসরের আকার হল BxNx96x96, যেখানে N হল মূল পয়েন্টের সংখ্যা, এবং অবশ্যই, থ্রেশহোল্ডের পরে এবং মূলে পুনরায় আকার দিন ফ্রেমের আকার, আমরা যা পাই তা পাই (
হিটম্যাপ রেন্ডার করার উদাহরণ:
কোড পূনর্বিবেচনা
সমস্ত কোড এই সংগ্রহস্থলে রয়েছে এবং খুব ছোট। আসুন মূল ফাইলটি একবার দেখে নেওয়া যাক এবং বাকিটা নিজের জন্য দেখুন।
আমদানি cv2 আমদানি মিডিয়াপাইপ as mp আমদানি অসাড় as np আমদানি pyautogui আমদানি pyrealsense2.pyrealsense2 as rs থেকে google.protobuf.json_format আমদানি MessageToDict থেকে mediapipe.python.solutions.drawing_utils আমদানি _স্বাভাবিক_থেকে_পিক্সেল_কোঅর্ডিনেট থেকে পিনপুট আমদানি কীবোর্ড থেকে utils.common আমদানি get_filtered_values, draw_cam_out, get_right_index থেকে utils.hard_reset আমদানি হার্ডওয়্যার_রিসেট থেকে utils.set_options আমদানি set_short_range pyautogui.FAILSAFE = মিথ্যা mp_drawing = mp.solutions.drawing_utils mp_hands = mp.solutions.hands # হাতের ভঙ্গি অনুমান হাত = mp_hands.Hands(max_num_hands=2, min_detection_confidence=0.9) Def অন_প্রেস(চাবি): if key == keyboard.Key.ctrl: pyautogui.leftClick() if key == keyboard.Key.alt: pyautogui.rightClick() Def পেতে_রঙের_গভীরতা(পাইপলাইন, সারিবদ্ধ, কালারাইজার): ফ্রেম = pipeline.wait_for_frames(timeout_ms=15000) # ক্যামেরা থেকে একটি ফ্রেমের জন্য অপেক্ষা করছে aligned_frames = align.process(frames) depth_frame = aligned_frames.get_depth_frame() color_frame = aligned_colframes()। if না গভীরতা_ফ্রেম or না color_frame: প্রত্যাবর্তন কোনোটিই নয়, কোনোটিই নয়, গভীরতা_ইমা = np.asanyarray(depth_frame.get_data()) depth_col_img = np.asanyarray(colorizer.colorize(depth_frame).get_data()) color_image = np.asanyarray(c_data_colorge)(c_data_color) cvtColor(cv2.flip(cv2.flip(depth_col_img, 2), 1), cv0.COLOR_BGR2RGB) color_img = cv2.cvtColor(cv2.flip(cv2.flip(color_img, 2), 1), cv0.COLOR_gb_th2RGB = np.flipud(np.fliplr(depth_img)) depth_col_img = cv2.resize(depth_col_img, (2 * 1280, 2 * 720)) col_img = cv2.resize(col_img, (2 * 1280, 2img = 720 thp) .resize(depth_img, (2 * 2, 1280 * 2)) প্রত্যাবর্তন color_image, depth_color_image, depth_image Def ডান_হাতে_কোর্ডগুলি পান(color_image, depth_color_image): color_image.flags.writeable = False results = hands.process(color_image) color_image.flags.writeable = True color_image = cv2.cvtColor(color_image, cv2.COLOR_RGB2BGR = {0} হ্যান্ডকোর্ডনেস, {1}} xyXNUMX = কোনটিই, কোনটিই নয় if ফলাফল. মাল্টি_হ্যান্ড_ল্যান্ডমার্ক: উন্নত idx, hand_handedness in enumerate(results.multi_handedness): handedness_dict.append(MessageToDict(hand_handedness)) right_hand_index = get_right_index(handedness_dict) if ডান_হাত_সূচক != -1: উন্নত i, landmark_list in গণনা করুন(results.multi_hand_landmarks): if i == right_hand_index: image_rows, image_cols, _ = color_image.shape উন্নত idx, ল্যান্ডমার্ক in গণনা করা(ল্যান্ডমার্ক_লিস্ট.ল্যান্ডমার্ক): landmark_px = _normalized_to_pixel_coordinates(landmark.x, landmark.y, image_cols, image_rows) if landmark_px: idx_to_coordinates[idx] = landmark_px উন্নত i, landmark_px in enumerate(idx_to_coordinates.values()): if i == 5: xy0 = ল্যান্ডমার্ক_px if i == 7: xy1 = ল্যান্ডমার্ক_px বিরতি প্রত্যাবর্তন col_img, depth_col_img, xy0, xy1, idx_to_coordinates Def শুরু(): পাইপলাইন = rs.pipeline() # ইনিশিয়ালাইজ librealsense config = rs.config() প্রিন্ট ("স্টার্ট লোড কনফ") config.enable_stream(rs.stream.depth, 1024, 768, rs.format.z16, 30) config.enable_stream(rs.stream.color, 1280, 720, rs.format.bgr8, 30) প্রোফাইল = pipeline.start(config) depth_sensor = profile.get_device ()। first_depth_sensor () set_short_range (depth_sensor) # স্বল্প দূরত্বে কাজ করার জন্য লোড প্যারামিটার = rs.colorizer () প্রিন্ট ("Conf loaded") align_to = rs.stream.color align = rs.align (align_to) # গভীরতা এবং মানচিত্র একত্রিত করুন কালার ইমেজ চেষ্টা করুন: যখন সত্য: col_img, depth_col_img, depth_img = get_col_depth (pipelin, align, colorize) যদি color_img কোনটি না হয় এবং color_img কোনটিই না হয় এবং color_img কোনটি না হয়: চালিয়ে যান color_img, depth_col_img, xy00, xy11, xy00, xy11, xy00, xy11, xy00, xy11, x_coordinate_coordinate (depth_coordinate) ) যদি xy3500 কোনোটিই না হয় বা xy3500 কোনোটিই না হয়: z_val_f, z_val_s, m_xy, c_xy, xy00_f, xy11_f, x, y, z = get_filtered_values (depth_img, xyXNUMX, xyXNUMX), pyoint. (XNUMX - z)) # XNUMX আমার মনিটরের জন্য নির্দিষ্ট হার্ডকোড যদি draw_cam_out (col_img, depth_col_img, xyXNUMX_f, xyXNUMX_f, c_xy, m_xy): অবশেষে বিরতি: hands.close () pipeline.stop () hardware_reset () # এবং ক্যামেরা রিবুট করুন এটি উপস্থিত হওয়ার জন্য অপেক্ষা করুন শ্রোতা = কীবোর্ড। শ্রোতা (অন_প্রেস = অন_প্রেস) # কীটির জন্য একটি শ্রোতা সেট করুন বোর্ড বোতাম টিপে listener.start () start () # প্রোগ্রাম শুরু করুন
আমি ক্লাস বা স্ট্রীম ব্যবহার করিনি, কারণ, এই ধরনের একটি সাধারণ ক্ষেত্রে, মূল থ্রেডের সবকিছুকে একটি অবিরাম সময় লুপে চালানোর জন্য যথেষ্ট।
একেবারে শুরুতে, মিডিয়া পাইপ, ক্যামেরা শুরু করা হয়, স্বল্প-পরিসরের জন্য ক্যামেরা সেটিংস এবং অক্জিলিয়ারী ভেরিয়েবল লোড হয়। এরপরে "আলাইট ডেপথ টু কালার" নামক ম্যাজিকটি আসে – এই ফাংশনটি RGB ইমেজ থেকে প্রতিটি পয়েন্টের সাথে মেলে, ডেপথ ফ্রেমের একটি পয়েন্ট, অর্থাৎ, এটি আমাদের XY স্থানাঙ্ক, Z মান পাওয়ার সুযোগ দেয়। এটা বোঝা যাচ্ছে যে আপনার মনিটরে ক্যালিব্রেট করা প্রয়োজন … আমি ইচ্ছাকৃতভাবে এই পরামিতিগুলিকে আলাদাভাবে বের করিনি, যাতে পাঠক যে কোডটি চালানোর সিদ্ধান্ত নিয়েছে সে নিজেই এটি করবে, একই সময়ে এটি কোডে পুনরায় ব্যবহার করা হবে)
এর পরে, আমরা সম্পূর্ণ ভবিষ্যদ্বাণী থেকে ডান হাতের 5 এবং 7 নম্বর পয়েন্টগুলি নিয়েছি।
একটি মুভিং এভারেজ ব্যবহার করে প্রাপ্ত স্থানাঙ্কগুলিকে ফিল্টার করাই বাকি আছে। অবশ্যই, আরও গুরুতর ফিল্টারিং অ্যালগরিদমগুলি প্রয়োগ করা সম্ভব ছিল, তবে তাদের ভিজ্যুয়ালাইজেশন দেখার পরে এবং বিভিন্ন লিভার টানার পরে, এটি স্পষ্ট হয়ে গেছে যে 5 ফ্রেমের গভীরতার সাথে একটি চলমান গড় ডেমোর জন্য যথেষ্ট হবে, আমি নোট করতে চাই যে XY এর জন্য, 2-3 ফ্রেম যথেষ্ট ছিল। কিন্তু Z এর সাথে জিনিসগুলি আরও খারাপ।
deque_l = 5 x0_d = collections.deque(deque_l * [0.], deque_l) y0_d = collections.deque(deque_l * [0.], deque_l) x1_d = collections.deque(deque_l * [0.], deque_l) y1_d = collections.deque(deque_l * [0.], deque_l) z_val_f_d = collections.deque(deque_l * [0.], deque_l) z_val_s_d = collections.deque(deque_l * [0.], deque_l) m_xy_d = collections.deque(deque_l) * [0.], deque_l) c_xy_d = collections.deque(deque_l * [0.], deque_l) x_d = collections.deque(deque_l * [0.], deque_l) y_d = collections.deque(deque_l * [0.] , deque_l) z_d = collections.deque(deque_l * [0.], deque_l) Def get_filtered_values(গভীর_চিত্র, xy0, xy1): বিশ্বব্যাপী x0_d, y0_d, x1_d, y1_d, m_xy_d, c_xy_d, z_val_f_d, z_val_s_d, x_d, y_d, z_d x0_d.অ্যাপেন্ড(float(xy0[1])) x0_f = বৃত্তাকার(d_x)(d_0এন্ড)(x_এন্ড) 0])) y0_f = বৃত্তাকার(mean(y0_d)) x0_d.append(float(xy0[1])) x1_f = round(mean(x1_d)) y1_d.append(float(xy1[1])) y1_f = বৃত্তাকার( গড় (y0_d)) z_val_f = get_area_mean_z_val (depth_image, x1_f, y1_f) z_val_f_d.append (ভাসা (z_val_f)) z_val_f = গড় (z_val_f_d) z_val_s = get_area_mean_z_val (depth_image, x0_f, y0_f) z_val_s_d.append (ভাসা (z_val_s)) z_val_s = মানে(z_val_s_d) পয়েন্ট = [(y1_f, x1_f), (y0_f, x0_f)] x_coords, y_coords = zip(*points) A = np.vstack([x_coords, np.ones(len(x_coords))])। T m, c = lstsq(A, y_coords)[1] m_xy_d.append(float(m)) m_xy = mean(m_xy_d) c_xy_d.append(float(c)) c_xy = গড়(c_xy_d) a1, a0, a0, a1 = equation_plane() x, y, z = লাইন_প্লেন_ছেদ (y2_f, x3_f, z_v_s, y0_f, x0_f, z_v_f, a1, a1, a0, a1) x_d. সংযোজন(float(x) x = বৃত্তাকার(d) ) y_d.append(float(y)) y = বৃত্তাকার(mean(y_d)) z_d.append(float(z)) z = round(mean(z_d)) প্রত্যাবর্তন z_v_f, z_v_s, m_xy, c_xy, (y00_f, x0_f), (y11_f, x1_f), x, y, z
আমরা 5 ফ্রেমের দৈর্ঘ্য সহ একটি ডেক তৈরি করি এবং একটি সারিতে সবকিছু গড় করি =) উপরন্তু, আমরা y = mx + c, Ax + By + Cz + d = 0 গণনা করি, সরলরেখার সমীকরণ হল RGB-তে রশ্মি। ছবি এবং মনিটরের সমতলের সমীকরণ, আমরা y = 0 পাই।
উপসংহার
ঠিক আছে, এতটুকুই, আমরা সবচেয়ে সহজ ম্যানিপুলেটরটি দেখেছি, যা এমনকি এর নাটকীয়ভাবে সহজ সম্পাদনের সাথেও, বাস্তব জীবনে কষ্ট হলেও, ইতিমধ্যেই ব্যবহার করা যেতে পারে!
এই নিবন্ধে প্রদর্শিত মিডিয়াগুলি অ্যানালিটিক্স বিদ্যা মালিকানাধীন নয় এবং এটি লেখকের বিবেচনার ভিত্তিতে ব্যবহৃত হয়।
সংশ্লিষ্ট
- "
- &
- 7
- 9
- হিসাব
- আলগোরিদিম
- সব
- বৈশ্লেষিক ন্যায়
- API
- কাছাকাছি
- শিল্প
- প্রবন্ধ
- সর্বোত্তম
- বৃহত্তম
- বক্স
- বাগ
- নির্মাণ করা
- কাছাকাছি
- কোড
- সাধারণ
- যোগাযোগ
- প্রতিযোগিতা
- অবিরত
- দম্পতি
- বর্তমান
- CZ
- উপাত্ত
- বিস্তারিত
- ডেভেলপারদের
- উন্নয়ন
- DID
- দূরত্ব
- গুঁজনধ্বনি
- ইংল্যান্ড
- ইত্যাদি
- ফাঁসি
- ফেসবুক
- ব্যক্তিত্ব
- পরিশেষে
- জরিমানা
- প্রথম
- কেন্দ্রবিন্দু
- বিন্যাস
- ক্রিয়া
- ভবিষ্যৎ
- git
- গুগল
- এখানে
- ছুটির
- কিভাবে
- HTTPS দ্বারা
- ধারণা
- IDX
- ভাবমূর্তি
- সূচক
- ইন্টেল
- IT
- কাজ
- চাবি
- বড়
- শুরু করা
- লাইব্রেরি
- LiDAR
- আলো
- লাইন
- বোঝা
- মানচিত্র
- অংক
- মিডিয়া
- পদক্ষেপ
- নেটওয়ার্ক
- নিউরাল
- সুযোগ
- অপশন সমূহ
- ক্রম
- ছবি
- নল
- দৃশ্যের পয়েন্ট
- ভবিষ্যদ্বাণী
- প্রেস
- প্রোফাইল
- কার্যক্রম
- কাছে
- পাইথন
- পাঠক
- পড়া
- প্রণালী
- গবেষণা
- বিশ্রাম
- ফলাফল
- আয়
- রোবট
- চালান
- স্কুল
- বিজ্ঞান
- স্ক্রিন
- অনুভূতি
- সেট
- সংক্ষিপ্ত
- সহজ
- আয়তন
- ছোট
- So
- সফটওয়্যার
- সলিউশন
- স্থান
- স্থায়িত্ব
- পর্যায়
- শুরু
- প্রারম্ভকালে
- রাষ্ট্র
- sudo
- সমর্থন
- কারিগরী
- কারিগরি সহযোগিতা
- ভবিষ্যৎ
- সময়
- উবুন্টু
- us
- ইউএসবি
- মূল্য
- ভিডিও
- চেক
- কল্পনা
- অপেক্ষা করুন
- হু
- জানালা
- হয়া যাই ?
- কাজ
- X
- বছর