Find us on Google+ سییتم های تعاملی - رسانه های تعاملی - پیور دیتا: 12/10/12

۲۰ آذر ۱۳۹۱

انجام یک پروژه Installation


Installation art :
مقدمه : هنر چیدمان یا هنر اینستالیشن (به انگلیسیInstallation art) استفاده کردن از عناصر مختلف است برای بیان تجربه هنرمند از «فضا»یی مشخص آنچه این هنرمندان در آن شریکند، نه موضوع خام، مواد خام، یا روش‌های خاکار، بلکه، علاقه آنها و تعهدشان به دیدگاهی گسترده تر از آفرینش هنری واز این راه کشف خود است.
از خصوصیات هنر اینستالیشن، فعال سازی یک محیط یا یک مفهوم با برخوردهای ظاهرا هنری است که باعث می‌شد اثر معنا و مفهوم و ارزش هنری پیدا کند. 
موادی که در چیدمان استفاده می‌شوند شامل طیف وسیعی هستند: از مواد و اشیاء زندگی روزمره و طبیعت گرفته تا رسانه‌های جدید نظیر ویدئو، صدا، پرفورمانس(هنر اجرا)، کامپیوتر و حتی اینترنت. هنر چیدمان لزوماً در نگارخانه‌های هنری اجرا نمی‌شود، بلکه ممکن است در هر فضای عمومی یا شخصی اجرا شود. بعضی از چیدمان‌ها فقط برای فضای خاصی طراحی شده‌اند.
سبک‌های استفاده شده در هنر چیدمان بسیار متنوع هستند؛ از انتزاعی (آبستره) گرفته تا روایی، از سیاسی تا صرفا نظری، اثری موقتی یا ماندگار.
از کجا شروع کنیم ؟
در روش اول به یک ابزار برنامه نویسی ویژوال برای کامپیوتر و یک ایده برای  انجام یک پروژه تعاملی احتیاج داریم :
برای تبدیل یک ایده به یک پروژه راه های تکنیکی ان,غیر قابل پیشبینی است.اولین چیزی که برای  آغاز کار لازم است،تقسیم بندی کردن بخش تئوریک پروژه به مراحل گام به گام و مشخص کردن اینکه چه بخشی از پروژه  قبل وچه بخشی بعد اتفاق بیفتد.بنابر آنچه گفته شد در واقع ما برای شروع باید نکات زیر را بررسی کنیم:
۱-پروژه چه تعاملی قرار است با بیننده (یا بلعکس) داشته باشد،یا به عبارتی دیگر بیننده چگونه در کار هنری دخالت خواهد داشت.
۲-محلی که پروژه قرار است در آنجا اجرا شود.
۳-حرکات در نقاط حساس.
۴-صدا ها .(سر و صدا های محیط هم شامل میشوند)   
۱-چه تعاملی با بیننده خواهیم داشت  ؟
لازم است به طور دقیق نوع تعامل کار با بیننده مشخص شود.برای مثال :
اگر قرار است بازدیدکننده وارد اتاق شود و با هر تکانی که میخورد ویدیویی پخش شود،باید سوالات زیر به صورت  دقیق پاسخ 
دهیم:
-بازدید کننده چگونه باید خود را تکان دهد ؟
-آیا باید از جایی بجایی دیگر رود ؟
-در چه محدوده ای دقیقا باید تکان بخورد؟   
-چه سخت افزاری احتیاج داریم ؟(دوربین ،میکروفون ،سنسور،....) 
-چه اطلاعاتی باید بگیریم (مختصات حرکت بازدیدکننده ؟فاصله ؟مقداری برای اندازه گیری صدا ؟مقداری برای اندازه گیری حساست سنسور ؟،.... )
-کجا باید سنسور(audio/video) را برای دریافت اطلاعات از بازدیدکننده ، قرار دهیم ؟
آنچه در بالا گفته شد قدم های اولیه برای انجام یک پروژه Installation است.
 اولین قدم :
برای انجام پروژه های کوچک میتوان از وب کم هم استفاده کرد اما برای Installation های حرفه ای باید از دوربین های حرفه ای بهره برد.همچین میتوان از یک دوربین dv با خروجی firewire استفاده کرد.همینطور برای میکروفون.
دومین قدم :
پردازش تعامل پروژه 
-تعین داده های عددی لازم برای طراحی پروژه ی تعاملی 
-انتخاب بهترین تکنیک برای پردازش و پیشبرد پروژه 
-تشخیص حضور فیزیکی ---> background suppression
-تشخیص حرکت ---> single/double difference
-تشخیص رنگ ---> color tracking  
برای به دست آوردن اطلاعات لازم باید ماسک ایجاد کنیم و ان را پردازش کنیم (محاسبه مساحت، مرکز ثقل موقعیت، فاصله، سرعت(= فضا / زمان) ....)
 در صورت وجود میکروفن بایدسیگنال دریافتی را  جهت به دست آوردن مقادیر عددی لازم پردازش کنیم(صدا،...) 
نتایج حاصل از این مرحله  نشان دهنده مقدار تعامل خواهد بود که ازان باید برای مرحله بعدی استفاده می شود.

سومین قدم :
قرار دادن سخت افزار پخش کننده ویدئو 
دوربین یا پروژکتور نمیتوانند در هرحالتی یا هرجایی قرار بگیرند،برای هر دیتایی که قرار است استخراج شود،قرار دادن تمام اجزا در جای مناسب ضروری است.برای داشتن یک خرجی مناسب مکان قرارگیری دوربین امری به شدت مهم است .
مختصات x,y دریک اتاق :
در پروژه اینتراکتیوی که قرار است تعامل به حرکات بازدید کننده وابسته باشد مختصات مکان بازدیدکننده از اصلی ترین داده ها میباشد.
Detection vs Display :  
دوربین را کجا قرار دهیم ؟---> بستگی داره چه دایتایی قراره از مختصات بازدیدکننده در اتاق،بگیریم.
مختصات X,Y :
بهتر که دوربین را بالا و مرکزسقف اتاق قراردهیم،به صورتی که دوربین در حالتی عمودی مخاطب رو هدف قرار بدهد.در ضمن برای این کار باید سقف به اندازه کافی بلند باشد.برای مثال در عکس زیر نقاط سیاه تیره مکان های پیش بینی شده برای مخاطب است.و خط های خاکستری مسیر حرکت مخاطب را نشان میدهد.
فاصله از دوربین باید مناسب باشد روی سقف های خیلی کوتاه نمیتوان کار کرد.راه دیگربرای تشخیص مختصات X,Y این است 
که دوربینی در وسط سقف،بالای صفحه نمایش قرار بدهیم.  

در این مورد شما احتیاج دارد که مختصات پای بازدیدکننده را ردیابی کنید نه مرکز ثقل را،چون در این مورد به ارتفاع بازدیدکننده  
 بستگی ندارد.
موقعیت فقط عمودی یا افقی  :
محل فیلمبرداری به سادگی موازی با حرکت بازدیدکننده خواهد بود.به عکس زیردقت فرمایید :
تعامل با صفحه نمایش :
برای مثال مختصات X,Y دست,این تعامل پیچیده تر است و می تواند در 2 روش متفاوت انجام می شود:
Rear Projection : با قرار دادن یک دوربین و یک نورافکن با مادون قرمز پشت و بالای پرده نمایش،دستها نورانی و قابل دیدن برای دوربین میشوند.این روش همچین امکان تشخیص نمای کلی از بازدیدکننده را به دوربین میدهد.نکته قابل توجه در این روش این است که صفحه نمایش باید به اندازه ترانسپرنت باشد که اشعه از ان به راحتی عبور کند.
Rear Projection
Rear Projection


بالای صفحه نمایش چراغ های مادون قرمز قرار میدهم. 







تقسیم بندی و استخراج silhouette

تقسیم بندی : 
تقسیم بندی تصآویر یکی از  قدم های  بسیار مهم در جهت پردازش تصاویر و پروسه  ضروری برای تجزیه و تحلیل آنها میباشد.

بخش بندی یا تقسیم بندی تصویر به چه معنی میباشد ؟
تقسیم بندی کردن ، پارتیشن بندی کردن معنی میدهد به عبارتی بخش بندی کردن تکنیکی است که  اجازه می دهد تا تصویر را به دو منطقه تقسیم کرد که حضور یا عدم حضور یک ویژگی خاص را شناسایی میکنند.

به عنوان مثال : تقسیم بندی انجام شده روی تصاویر شناسایی شده اشیاء در حال حرکت در ۲ بخش تعیین میشوند :
در حال حرکت و غیرحرکتی  (ساکن)

هدف از تقسیم بندی ، به دست آوردن یک تصویر باینری است ، که با یک رنگ (سفید) مجموعه  نقاط  تصویر در حال حرکت شناسایی میشود ، و با رنگ دیگر (سیاه) مجموعه نقاط از تصویر  که در حال حرکت نمیباشند (ساکن) میباشد.

در اینجا از مجموعه نقاط صحبت میشود و نه object ها (اشیاء)، برای اینکه بخش بندی در سطح پیکسل انجام میشود ،
و پس از شناسایی مناطقی از تصویر در حال حرکت و گروه بندی می شوند، توانایی این را خواهد داشت که در سطح object کار کند و blob نامیده میشود.
نتیجه حاصل از یک تقسیم بندی یک تصویر باینری خواهد بود که آنرا ماسک نیز مینامیم .
انواع مختلفی از تقسیم بندی وجود دارد .
تقسیم بندی یک تصویر "عادی"، از پیش پردازش نشده، بر اساس تغییرات درخشندگی ان است .
برای به دست آوردن اطلاعات مربوط به حرکت ،  پردازش بیش از یک تصویر لازم است.

آستانه تصویر : 
انتخاب یک مقدار از شدت نور T (آستانه) ، که اجازه جدا کردن تصویر به دو منطقه،بالاترین  و پایین ترین با توجه شدت نور میدهد .
تبدیل تصویر در سطح خاکستری به یک تصویر باینری
برای هر نقطه از از تصویر مبدا؛ 
 f(i,j)
نقطه مشخص شده
g(i, j) 
در تصویر ، تبدیل میشود .

اگر  f(i,j)>=T) g(i,j)=1; 
درغیر این صورت  g(i,j)=0; 
آستانه استاتیک : آستانه ثابت در ابتدا انتخاب میشود.
آستانه پویا : آستانه یی که در طول اجرای یک patch متناسب با یک مقدار دیگر تغییر میکند.
(بطور مثال : مقدار متوسط روشنایی صحنه تغییر میکند)



آستانه : 

جعبه ای که کار تقسیم بندی آستانه را انجام میدهد pix_duotone نامیده میشود.

دومین inlet آستانه RGB ست ، و سومین inlet ، رنگیست  
که پیکسل ست میشه، اگر پایین تر از آستانه باشد .
چهارمین ، رنگ RGB ست اگر بالاتر یا برابر آستانه باشد .

در مثال نشان داده شده ، یک پیکسل به عنوان سفید دسته بندی می شود ،اگر مقدار بزرگتر یا برابر با آستانه داشته باشد، در غیراینصورت مشکی دسته بندی میشود. 

بنابرین آستانه همانند یک نقطه برش عمل میکند .









چه آستانه ای استفاده شود؟
انتخاب آستانه بستگی دارد به object های مورد علاقه :


در مورد آستانه استاتیک ، آستانه باید پس از تجزیه و تحلیل دقیق از صحنه انتخاب شود.
در مورد آستانه پویا (که در طول اجرا تغییر میکند) میتوان از روشنایی تصویر برای تغییر آستانه استفاده کرد. 

تشخیص اشیاء و حرکت : 
اساسا سه روش برای تشخیص اشیاء و / یا حرکت در یک صحنه وجود دارد:

Background suppression
Single difference
Double difference


Background suppression یا مهار پس زمینه :
تشخیص حضور اشیاء را در صحنه با انجام مقایسه پیکسل به پیکسل بین فریم های جاری و یک فریم که آنرا پس زمینه مینامیم یا  تصویر مرجع یا تصویر background که شامل یک تصویر از پس زمینه "تمیز" (یعنی بدون اشیاء)
این روش فقط زمانی کاربرد دارد که دوربین کاملا ثابت و بدون حرکت باشد.
تفاوت با تصویر پس زمینه یک تصویر متفاوت تولید خواهد کرد.
تفاوت در سطح پیکسل انجام میشود ، اگر I تصویر فعلی، B تصویر پس زمینه و تصویرD  مقدار تفاوت باشد بنابراین داریم :
    D(x,y) = | max(I(x,y).R-B(x,y).R, I(x,y).G-B(x,y).G, I(x,y).B-B(x,y).B) |  
که در آن (x,y) نقطه ای در مختصات x و y  مربوط به تصویر میباشد ، و R .G .B. مؤلفه رنگ قرمز، سبز و یا آبی است.
-- تفاوت در ارزش مطلق است .
-- ایجاد یک تغییر در RGB ضروری نیست
        D(x,y) = | I(x,y) – B(x,y) |

تفاوت های برجسته تصویر در نمایش داده نمیشوند در تصویر پس زمینه .

تصویر اول : ویدئو ارجینال  تصویر دوم : پس زمینه ذخیره شده
تصویر اول : ویدئو ارجینال  تصویر دوم : پس زمینه ذخیره شده 

تصویر تفاوت با پس زمینه
تصویر تفاوت با پس زمینه   


تفاوت بین ۲ تصویر : 
یک مثال ریاضی از تفاوت بین تصاویر در مقیاس خاکستری :



تصویر A

تصویر B

تصویر تفاوت  D = |A-B|
به اعدادسه گانه ۳۹ دقت کنید ، با اعمال عملیات آستانه با مقدار 20 ماسک زیر بدست میاید


PureData - Audio

: Audio
 [osc~]ماژول که سیگنال های صدا را پردازش میکنند به “~” ختم میشوند. مثال 
سیگنال های صوتی floating point 32 bit هستند ، با محدوده 1- , 1
اغلب سخت افزار محدود به ۱۶ یا ۲۴ بیت است .
I/O Audio: objects adc~ e dac~
همیشه در قسمت پایین یک patch قرار دارند 
Audio on/off : در شروع همیشه به صورت پیش فرض خاموش (off) میباشد. 
شروع و پایان پردازش 
از رابط  کاربری ، منوی  (MEDIA->audio ON/OFF) و یا از یک patch با پیغام pd dsp 1 و pd dsp 0
پیش فرض  44100Hz، قابلیت ویرایش توسط GUI
ذخیره در ۱۶/۲۴/۳۲ بیت  wav, aiff, au
با سیگنال های صوتی  نمی توان  cycles / loop انجام داد .
شما فقط میتوانید آنرا با اتصالات غیر local انجام دهید (تاخیر به اندازه یک audio buffer size)
اجازه روشن و خاموش کردن صدا را میدهد  switch~  
 اندازه بلوک های پردازش را کنترل میکند    block~
برای sottopatch های واحد .
 بر روی تمامی پنجره کار میکند 

Audio 2 :
انتخاب کانال صوتی I / O
  -- Flag -inchannels, -outchannels
  -- default 2

 writesf~, readsf~, soundfiler~, tabwrite~, tabread4~ :  objects  نوشتن / خواندن 

Objects MIDI
  -- اگر لازم باشد، فعال کردن   دستگاه هایMIDI IO  در رسانه ها → MIDI Settings...
Notein, noteout, ctlin, ctlout, pgmin, pgnout, bendin, bendout, touchin, touchout,sysexin, sysexout, . . .  

  -- مباحث: canal number, ctl number
  -- ببینید : PureData/ → 5.reference/ → midi-help
چپ ترین inlet  در یک  object audio میتواند هرگونه سیگنالی از نوع audio و message بقیه inlet ها ، audio , message را دریافت کند ،   

صدا و پیام ها (Audio and messages) :
پردازش صوت و پیام لایه ای

سیگنال های کنترل پردازش در آغاز هر چرخه DSP
  -- 64/44.1kHz → 1.45 ms
پیغام های هرگز عبور نکرده در طول یک tick از dsp (جبرگرایی)
تبدیل سیگنال های صوتی و کنترل:
Objects sig~ , snapshot~

مشکلات :
نمیتوان sample-rat را کنترل کرد 
رویداد های در سطح audio (به عنوان مثال zero-crossing) به عنوان trigger استفاده نمیشوند.
در Browser examle ببینید : 


•Pure Data/ → 2.audio.examples/ → A04.line2, A05.output.subpatch, B07.sampler, G01.delay
•Manuals/ → 1.Sound/ → 01.controlling_dsp_processing, 01.hello_world, 02.audio_data, 02.make_some_noise, 03.dsp_processing

File audio : 
object هایی وجود دارند که میتوانند فایل های صوتی را باز کنند . (هرکدام از آنها با ویژگی مختلفی )
[soundfiler] یک فایل wav را باز میکند و محتویات آنرا در یک array کپی میکند.
  -- اندازه یک آرایه را حد اکثر محتوای کپی شده تعیین خواهد کرد .
  -- object های [tabplay~] و  [tabread~] برای باز خوانی محتویات آرایه لازم میباشد. 

[~readsf] فایل های wav و  aiff را باز میکند 
  -- پیغام [open] و  متقائب آن نام فیل لازم میباشد .
  -- پیغام [start]برای آغاز بازخوانی لازم میباشد . 

[~mp3play] کتابخانه خارجی iemlib فایل mp3 را باز میکند .
  -- پیغام [open] و  متقائب آن نام فیل لازم میباشد .
  -- پیغام [start]برای آغاز بازخوانی لازم میباشد . 


Detection volume :
[~env] تشخیص دامنه در دسی بل از سیگنال های ورودی صوتی
[~fiddle]تشخیص دامنه در DB، اوج، و دیگر سیگنال ورودی های صوتی


منابع : 
Pd Documentation, www.puredata.info
Federico Avanzini, “Corso di Sistemi di elaborazione per la musica”, DIE,
Università di Padova