<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های سامان براهویی</title>
        <link>https://virgool.io/feed/@smaibrave</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 07:14:03</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>سامان براهویی</title>
            <link>https://virgool.io/@smaibrave</link>
        </image>

                    <item>
                <title>نسخه دیجیتالی دستتو بساز به سادگی</title>
                <link>https://virgool.io/@smaibrave/%D9%86%D8%B3%D8%AE%D9%87-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84%DB%8C-%D8%AF%D8%B3%D8%AA%D8%AA%D9%88-%D8%A8%D8%B3%D8%A7%D8%B2-%D8%A8%D9%87-%D8%B3%D8%A7%D8%AF%DA%AF%DB%8C-dzs4ywq47caw</link>
                <description>شما میتونین به راحتی فقط با پایتون و اپن سوی وی انجامش بدیحتی اگه چیزی از برنامه نویسی نمیدونی هم اشکال نداره تا اخر بیابرای اینکار شما به سه تا کتابخونه نیاز داری اوپن سی وی و تایم وی مدیا پایپimport cv2
import mediapipe as mp
import timeما از کتابخونه مدیا پایپ استفاده میکنیم تا بتونیم مدل handtracking رو ایجاد کنیم که خیلی کاربرها دارهشما میتونین به صورت ماژول بنویسینشcap = cv2.VideoCapture(&quot;vid1.mp4&quot;)mpHands = mp.solutions.handshands = mpHands.Hands()mpDraw = mp.solutions.drawing_utilscTime = 0pTime = 0# Function Startاینجا میایم مدلمون رو انتخاب میکنیم ار مدیا پایپ while True:success, img = cap.read()imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)results = hands.process(imgRGB)#print(results.multi_hand_landmarks)if results.multi_hand_landmarks:for handlms in results.multi_hand_landmarks:for id, lm in enumerate(handlms.landmark):h, w, c = img.shapecx, cy = int(lm.x*w), int(lm.y*h)print(id, cx, cy)cv2.circle(img, (cx, cy), 8, (0, 0, 0), cv2.FILLED)mpDraw.draw_landmarks(img, handlms, mpHands.HAND_CONNECTIONS)cTime = time.time()fps = 1/(cTime-pTime)pTime = cTimecv2.putText(img, str(int(fps)), (10,70), cv2.FONT_HERSHEY_SIMPLEX, 3, (0,0,0), 3)cv2.imshow(&quot;Image&quot;, img)cv2.waitKey(1)اینجا هم بقیه کد که واسه ایجاد برنامه استفاده میکنیمتوضیح نمیدم خودتون حالا میتونی برین دنبالشمدل دستمون بخش های مختلفی داره که میبینین میتونید ار تمام بخش های دستمون اسنفاده کنینکه برناممون رو باشون بنویسیم که بهش میگن لند مارکاز این روش میشه خیلی جاها استفاده کردندر پهپاد ها در دوربینا خلاصه هرجا که فکرشو بکنین با همین چهار خط کد:)یه ویدیو هم میزارم که اونجا قشنگ بهتون به صورت واقعی نشون بدم توضیحات بیشتری میدم سختمه نوشتنکد برنامه رو میتونین از لینک زیر دانلود کنیدhttps://github.com/samanbraa1/handtrواینک ادرس ویدیو اپارات میتونین برین نگاه کنینhttps://aparat.com/v/1pRceاگه دلتون خواست بهم بگین بازم بزارم یا با توضیح بیشتری انجامش بدیم ازصفر شروع کنیم</description>
                <category>سامان براهویی</category>
                <author>سامان براهویی</author>
                <pubDate>Sat, 18 Dec 2021 13:11:19 +0330</pubDate>
            </item>
                    <item>
                <title>تشخیص سگ از گربه با بایتورچ به سادگی</title>
                <link>https://virgool.io/@smaibrave/%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D8%B3%DA%AF-%D8%A7%D8%B2-%DA%AF%D8%B1%D8%A8%D9%87-%D8%A8%D8%A7-%D8%A8%D8%A7%DB%8C%D8%AA%D9%88%D8%B1%DA%86-%D8%A8%D9%87-%D8%B3%D8%A7%D8%AF%DA%AF%DB%8C-ebklbwlzbfgu</link>
                <description>امروز قراره یاد بگیریم چطوری میشه که عکس های سگ و گربه رو بدیم به سیستم و اون تشخیصش بده مثل بچه ادمیزاد:)اگه  هیچ اطلاعاتی از هوش مصنوعی ندارین بازم به دردتون میخوره مبینید چطوری میشه که کامپیوتر ما یادمیگره گربه یا سگ رو از روی عکس تشخیص بدهبرای اینکه بتونیم به یه بچه هم فرق این دوتا حیوون یاد بدیم اول باید عالمه سگ و گربه رو بشون نشون بدیم تا  یاد بگیرن واسه هوش مصنوعی ما هم اینطوری هستش باید یه عالمه عکس سگ و گربه جمع کنیم نشونش بدیم تا بتونه تازه فرقشون بفهمه  خدارو شکر نیازی نیست ما بیفتیم دنبال عکس میتونیم از مجموعه های اماده استفاده کنیم(دیتاست) یکی از این معروف ها در سایت کگل وجود داره که راحت میتونین دانلودش کنید داخلشم فقط عکس که دسته بندی شدهادرس دیتاست:Dogs vs. Cats | Kaggleبرین قسمت code  ودانلودش کنیددو تا فایل داریم train و test  که داخل هرکدم عکسا سگ و گربه وجود داره چیز خاصی نیستازتون میخوام مثل این عکس فولدر  ها رو درست کنید اینطوری کارتون خیلی راحتر میشه از خیلی از مشکلان جلوگیری میشه سعی کنید همیشه اول دیتاستتون تمیز کنید (اینارو بتون نمیگن شما حواستون باشه؛)حالا شما باید یه جا کدتون بزنین میتونه سیستم خودتون باشه یا بریم از کولب(سیستم گوگل) یا کگل استفاه کنیم هر طور راحتینimport numpy as np # linear algebraimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)%matplotlib inline%config InlineBackend.figure_format = &#039;retina&#039;import matplotlib.pyplot as pltimport torchfrom torch import nnfrom torch import optimimport torch.nn.functional as Ffrom torchvision import datasets, transforms, modelsimport osprint(os.listdir(&amp;quot../input&amp;quot))# import module we&#039;ll need to import our custom modulefrom shutil import copyfilecopyfile&#40;src = &amp;quot../input/view-class/view_helper.py&amp;quot, dst = &amp;quot../working/view_helper.py&amp;quot&#41;import view_helper as helperاینجا ما یه سری کتابخونه رو اضافه کردیم  فعلا خودتون درگیرشون نکنین (هدف ما نقشه راه)از اول نوضیح نمیدم دیگه  (تمام کد ها به زبان بایتون) بیشنهاد من اینه از کولب استفاده کنین(نمیدونی چیه باشو سرچ کن دیگه تنبل)data_dir = &#x27;../input/dogs-vs-cats-for-pytorch/cat_dog_data/Cat_Dog_data&#x27;# TODO: Define transforms for the training data and testing datatrain_transforms = transforms.Compose([transforms.RandomRotation(30),                                       transforms.RandomResizedCrop(224),                                       transforms.RandomHorizontalFlip(),                                       transforms.ToTensor(),                                       transforms.Normalize([0.485, 0.456, 0.406],                                                            [0.229, 0.224, 0.225])])test_transforms = transforms.Compose([transforms.Resize(255),                                      transforms.CenterCrop(224),                                      transforms.ToTensor(),                                      transforms.Normalize([0.485, 0.456, 0.406],                                                           [0.229, 0.224, 0.225])])خوب کار این کدها اینه که عکسای ما رو یه سری تغیررات بده بشون مثلا  اندازه عکسو تغییر بده وتبدیل به تنسور کنه که تقریبا همون ماتریس خودمونه (هدفم این نیست بیام به شما کامل توضیح بدم تمام این کد هارو فقظ دارم این که چجوری انجام میشه رو نشون میدم)train_data = datasets.ImageFolder(data_dir + &#x27;/train&#x27;, transform=train_transforms)test_data = datasets.ImageFolder(data_dir + &#x27;/test&#x27;, transform=test_transforms)یادتونه گفتم فولدار های دیتاست رو  دسته بندی کنیم اینجا به درد میخوره که میام از ایمج فولدر استفاده میکنیم و ترنسفرم ها رو بشون میدم(همون کدهایی که باعث میشد یه سری تغیرات عکسو بدیم) و ادرس فولدرامونو که train  وtest بود ؛اینو بگم ایمیج فولدر خودش میاد خیلی از کارا رو انجام میده عکسارو انتخاب میکنه trainloader = torch.utils.data.DataLoader(train_data, batch_size=64, shuffle=True)testloader = torch.utils.data.DataLoader(test_data, batch_size=64)حالا میام دیتالودرامونو تعریف میکنیم کارشون اینه که عکسارو برای ما بر میداره و زمانی که بخوایمم به مدل هوش مصنوعی بدیم کارمونو راحتتر میکنهdata_iter = iter(trainloader)images, labels = next(data_iter)fig, axes = plt.subplots(figsize=(10,10), ncols=4)for ii in range(4):    ax = axes[ii]    helper.imshow(images[ii], ax=ax, normalize=False)این تیکه کد عکسایی که لود شده و ما میخوایمم بدیم مدلمون رو نشون میده (ماژول هلبر رو اخر میزارم کدشو)اینم کده مدل هوش مصنوعی ما که  امدیم از مدل densenet12 ااستفاده کردیم
و لایه اخر مدل (کلسیفایر ) رو دست کاری کردیم برای اینکه تشخصی بده و لاس و ابتیمایزمونو انتخاب کردیم
ایی خدا خستع شدم بقییه باشه تو قسمت بعدی که یاد میدم چجوری مدلمونو تمرین بدیم جاهای جالبش هنوز مونده:))))))
# Use GPU if it&#039;s availabledevice = torch.device(&amp;quotcuda&amp;quot if torch.cuda.is_available() else &amp;quotcpu&amp;quot)model = models.densenet121(pretrained=True) # Freeze parameters so we don&#039;t backprop through themfor param in model.parameters():param.requires_grad = Falsemodel.classifier = nn.Sequential(nn.Linear(1024, 256),nn.ReLU(),nn.Dropout(0.2),nn.Linear(256, 2),nn.LogSoftmax(dim=1)) criterion = nn.NLLLoss() # Only train the classifier parameters, feature parameters are frozenoptimizer = optim.Adam(model.classifier.parameters(), lr=0.003) model.to(device);</description>
                <category>سامان براهویی</category>
                <author>سامان براهویی</author>
                <pubDate>Sat, 18 Dec 2021 08:15:51 +0330</pubDate>
            </item>
            </channel>
</rss>