JustPaste.it

System wspomagający wybór formatu graficznego i moduł poprawy jakości zdjęć.

Projekt ma charakter nawigacyjny.

Projekt ma charakter nawigacyjny.

 

 

 Autor:  Magister inżynier Ireneusz Łukasz Dzitkowski                                                                      Wałcz, dnia: 08. 02. 2012r.

 © Wszystkie prawa zastrzeżone.

 

 

 

                                                                Projekt systemu przedstawiony w formie artykułu:

 

 System wspomagający wybór formatu graficznego i moduł poprawy jakości zdjęć o charkaterze nawigacyjnym.

                                                             

 

  SPIS PUNKTÓW:

 

 Wstęp

  1. Cel pracy

  2. Koncepcja systemu wspomagającego wybór formatu graficznego

  3. Koncepcja modułu poprawy jakości zdjęć

  4. Przykładowy program

  5. Zastosowanie CLIPS w podejmowaniu decyzji wyboru

 

 

                                                                                          Wstęp

 

 

         Grafika współcześnie jest ogromnym zbiorem zdjęć i formatów,

że problemem jest wybranie najlepszej  jakości zdjęcia ze zbioru zdjęć

i grafik umieszczonych w danej bazie.

Gdy analizowanie zajmuje wiele czasu,

a jest mnóstwo możliwości to sprawa się komplikuje.

Ciekawym rozwiązaniem okazuje się zastosowanie

hybrydowych systemów sztucznej inteligencji do wspomagania

wybór formatu graficznego i modułu poprawy jakości zdjęć

przydatnych  do uzupełniania witryny i poprawy jakości

zdjęć w albumie. Za pomocą programów sztucznej 

inteligencji istnieje możliwość wyboru ilości,

formatu i rodzaju zdjęcia przez przycisk "zaznacz wszystkie" lub dla

wybranego zdjęcia. Jest to istotna operacja,

która umożliwia użytkownikowi komputera na wybranie przy wsparciu

sztucznej inteligencji najbardziej pod względem cech jakościowych

wartościowego i odpowiedniego graficznie zdjęcia. 

         Program tego typu oferuje dużą różnorodność w zakresie

edytowania i polepszania obrazków w grafice ponieważ

najlepszy sposób wyboru właściwego zdjęcia zależy od listy

 zbiorze i jest tak zaprogramowany, aby ułatwić poruszanie

 się wśród bogactwa możliwości oraz  maksymalnie

ułatwić wybór typu zdjęcia. Wszystkie wybory mogą być dokonywane

 przypomocy wygodnego narzędzia przeznaczonego do wyznaczenia dostępu

do wielu typów zdjęć i zintegrowanego z podręcznikiem

elektronicznym) lub przez prosty system hierarchicznego menu.

            Wykresy dostępne są też przez makra. Patrz także następny akapit na temat skrótów.

Szybki dostęp do najczęściej stosowanych typów wykresów,

skróty.Najczęściej wykorzystywane typy wykresów są dostępne poprzez

szybkie narzędzia, wymagające tylko "pojedynczego kliknięcia"

(np. Podręczne wykresy statystyczne lub wykresy bloku danych).

 Narzędzia te są dostępne w podręcznych menu i zmniejszają

do niezbędnego minimum liczbę potrzebnych analiz.

 

 

 

     1. Cel pracy.

     Celem pracy jest generalne zaprezentowanie koncepcji systemu i programu

w CLIPS przeznaczonych do wyboru grafiku

 ze zbioru i poprawy jakości zdjęć w świetle

hybrydowych systemów expertowych i sztucznej inteligencji potrzebnych

dla zastosowań reklamowych artystycznych oraz profesjonalnych.

     Ze strony zastosowań dla informatyki to przede wszystkim

automatyczna analiza za pomocą hybrydowej sztucznej inteligencji,

która przyśpiesza i eliminuje skomplikowane ipotrzebne procesy analityczne

umieszczając je w module programowym.

 

 a) Schemat przedstawiający działanie systemu wspomagającego wybór sztucznych zdjęć.

7013f6a885b144c652cb992892253d27.jpg

 2. Koncepcja systemu wspomagającego wybór formatu graficznego.

     Koncepcja zawiera diagram i model przebiegu procesu zbierania

do określonego zbioru zdjęć i następnie wybór najlepszego

 jakościowo zdjęcia na podstawie instrukcji zawartej

w programie CLIPS najlepszego zdjęcia, a dzięki temu poprawy

jakości modułu graficznego.

 

 3. Koncepcja modułu poprawy jakości zdjęć.

     Pomysł ten przedstawia za pomocą rysunku blokowego decyzję dotyczącą poprawy jakości i wyboru,

 która przebiega w hybrydowym systemie sztucznej inteligencji jaki wykorzystuje

środowisko CLIPS.

9424d18081f529962bc911f3b10a0b54.jpg

 

 

3f7b6557c0476e5734da50570071ab03.jpg

 

1af6e67040f9ea8d3bb421b066c2049b.jpg

 

 a) Porządkowanie wyboru według normy i standardów jakości.

ed7c610ed1eea8388f55ee9f4576828c.jpg

b30662b2850afed7101addd7d61e9cf5.jpg

 

 Metoda: http://www.google.pl/imgres?q=Jako%C5%9B%C4%87+zdj%C4%99cia&um=1&hl=pl&tbm=isch&tbnid=ozTzqSo- 5

 

 b) Jakość zdjęć kadrowych.

e03c2bd04cb2a91429baa7f7a9cd8eb5.jpg    4. Przykładowy program w CLIPS.

   Przykładowymi programami są :

 -PhotoViz dostępny na stronie http://www.picsalive.com/download.aspx

 -WindowsExec

 -CleanerZoomer 40.c

 

 (defrule get-goal

(initial-fact)

=>

(printout t "How many foto do you want? ")

(assert (goal =(read))) ; Read answer and use it as a goal.

(assert (visited 0 0)) ;

)

 

; rule. (It would be harder to print the moves in forward order.)

 

(defrule done

(declare (salience 1))

(goal ?x)

(or (visited ?a&:(= ?a ?x) ?b)

(visited ?a ?b&:(= ?b ?x))

)

=> 6

(printout t crlf "Solution found. Moves in reverse order:" crlf crlf)

(assert (print-path ?a ?b)) ; arrange for first move to be printed

)

 

(defrule solution-printer

(declare (salience 1))

?prev <- (print-path ?a ?b)

(predecessor ?a ?b ?c ?d)

=>

(printout t " Moved from " ?c "," ?d " to " ?a "," ?b crlf)

(retract ?prev)

(assert (print-path ?c ?d)) ; arrange for next move to be printed

)

 

(defrule solution-printed

(declare (salience 1))

?prev <- (print-path ?a ?b)

(not (predecessor ?a ?b ? ?)) ; The state (?a,?b) has no predecessor.

=>

(printout t crlf "And that was where we started." crlf crlf)

(retract ?prev)

(halt)

)

 

 

(deffunction visit (?froma ?fromb ?toa ?tob)

(assert (visited ?toa ?tob))

(assert (predecessor ?toa ?tob ?froma ?fromb))

(printout t "Try advance from " ?froma "," ?fromb " to " ?toa "," ?tob crlf)

)

 

(defrule empty1 ; empty foto number 1

(visited ?a ?b)

(test (> ?a 0))

(not (visited 0 ?b))

=>

(visit ?a ?b 0 ?b)

)

 

(defrule empty2 ; empty foto2 number 2

(visited ?a ?b)

(test (> ?b 0))

(not (visited ?a 0))

=>

(visit ?a ?b ?a 0)

)

 

(defrule fill1 ; fill foto 3 number 1

(visited ?a ?b)

(test (< ?a 3))

(not (visited 3 ?b))

=> 7

(visit ?a ?b 3 ?b)

)

 

(defrule fill2 ; fill foto 2number 2

select foto 1+foto2+foto3/3

(visited ?a ?b&:(< ?b 5))

(test (< ?b 5))

(not (visited ?a 5))

=>

(visit ?a ?b ?a 5)

)

 

(defrule pour12-empty1 ; pour from foto1 1 to foto2 till 1 is empty

(visited ?a ?b)

(test (> ?a 0))

(test (<= (+ ?b ?a) 5))

(not (visited 0 =(+ ?b ?a)))

=>

(visit ?a ?b 0 (+ ?a ?b))

)

 

(defrule pour21-empty2 ; pour from foto 2 to foto 1 till 2 is empty

(visited ?a ?b)

(test (> ?b 0))

(test (<= (+ ?b ?a) 3))

(not (visited =(+ ?b ?a) 0))

=>

(visit ?a ?b (+ ?a ?b) 0)

)

 

(defrule pour12-fill2 ; pour from foto1 to foto 2 till 1 is full

(visited ?a ?b)

(test (> ?a 0))

(test (> (+ ?b ?a) 5))

(not (visited =(- (+ ?a ?b) 5) 5))

=>

(visit ?a ?b (- (+ ?a ?b) 5) 5)

)

 

(defrule pour21-fill1 ; pour from foto 2 to foto 1 till 2 is full

(visited ?a ?b)

(test (> ?b 0))

(test (> (+ ?b ?a) 3))

(not (visited 3 =(- (+ ?a ?b) 3)))

=>

(visit ?a ?b 3 (- (+ ?a ?b) 3))

)

 

 (parent foto1, foto2)

(+ 3 2)

(load "buckets.clips")

(family (father foto1) (mother foto2) (child wynik))

(assert (parent foto1))

(retract 17)

(deffacts family-tree

(parent foto1 foto2)

(parent foto 3 foto1)

(parent foto 2 foto3)

(parent foto1, wynik)

)

(set-strategy select wybór)

(defrule <name-of-rule>

<optional-declare>

<conditions>

=>

<actions>

)

(declare (select17))

(defrule grandp

(parent ?x ?y)

(parent ?y ?z)

=>

(assert (grandparent ?x ?z))

)

 

(values ?a&:(> ?a 0) ?b&:(>= ?b ?a))

(test (>= ?b ?a))

(not (parent ?a ?b))

 

(or (grandparent tim ?) (grandparent ? tim))

(value (+ ?a ?b))

(value =(+ ?a ?b))

(bind ?x (+ ?a ?b))

(printout t "The sum of " ?a " and " ?b " is " (+ ?a ?b) crlf)

(bind ?x (read))

(deffunction family (?father ?mother ?child)

(assert (foto1 ?foto2 ?wynik))

(assert (foto2 ?foto3 ?wynik))

(assert (foto1 ?foto2 ?foto3))

 

)

(input $?before foto1 $?after)

(assert (before-foto2 ?before))

(create$ X Y Z...)

(nth$ N L)

(first$ L)

(rest$ L)

(member$ X L)

(subsetp L1 L2)

(explode$ str) 9

$ "I can't do that")

(implode$ L)

(defrule converse

?t <- (talk) ; Fires when there is a (talk) fact.

=>

(retract ?t) ; Get rid of (talk) fact.

(bind ?input-string (readline)) ; Read a line from user.

(bind ?input (explode$ ?input-string)) ; Convert it.

(assert (input ?input)) ; Put input into working memory.

)

remove-break rule-name)

(exit)

 

   5. Zastosowanie CLIPS w podejmowaniu decyzji wyboru.

 

    Rozwiązuje problemy takie bywają nazywane AI-trudnymi i zalicza się do nich między innymi:

• analiza (i synteza) języka naturalnego,

• rozumowanie logiczne,

• dowodzenie twierdzeń,

• gry logiczne

• szachy,

• warcaby,

• go,

• manipulacja wiedzą,

• systemy doradcze,

• diagnostyczne.

 

     W tym przypadku rozwiązał się problem możliwości wyboru

najlepszej fotografii i poprawy jakości zdjęć z wykorzystaniem

modułów sztucznej inteligencji. Program minimalny w CLIPS

to stworzenie algorytmu przejawiającego aspekt inteligencji

rozpoznającego wybrane zdjęcie jako najlepsze zdjęcie.

     Bardzo ważna jest koncepcja i opis w zawartym projekcie,

który w miarę możliwośći prezentuje metodę w jaki można

wybrać zdjęcia i przeprowadzić najlepszy wynik w systemie wspomagającym

wybór formatu graficznego i moduł poprawy jakości zdjęć.

a1aa348aa85b7eec745cfb3be483db87.jpg

 http://www.google.pl/imgres?q=modu%C5%82+poprawy+jako%C5%9Bci+zdj%C4%99c&um=1&hl=pl&sa=N&tbm=isch&tbnid=9Z9ZgCuZ3UhbzM:&imgrefurl=http://poradyisztuczki.blogspot.co 11

 

(deffunction pobierz_ilość zdjęć (?zdjęcie_low ?zdjęcie_high)

(bind ?liczba (read))

(while(or (not (integerp ?liczba))

(< ?liczba ?zdjęcie_low)

(> ?liczba ?zdęcie_high)

)

(format t "%nPodales zla liczbe, sprobuj ponownie <%d,%d>:" ?zdjecie_low ?zdjęcie_high)

(bind ?liczba (read))

)

(printout t crlf)

?liczba

)

 

(deffunction pobierz_tak_nie ()

(bind ?odp (readline))

(bind ?odp (lowcase ?odp))

(while(and (<> 0 (str-compare ?odp "tak")) (<> 0 (str-compare ?odp "nie")))

(printout t "<tak|nie>: ")

(bind ?odp (readline))

)

(printout t crlf)

?odp

)

 

(deffunction pobierz_tak_nie_nie-wiem ()

(bind ?odp (readline))

(bind ?odp (lowcase ?odp))

(while(and (<> 0 (str-compare ?odp "tak")) (<> 0 (str-compare ?odp "nie")) (<> 0 (str-compare ?odp "nie wiem")))

(printout t "<tak|nie|nie wiem>: ")

(bind ?odp (readline))

)

(printout t crlf)

?odp

)

 

(deffunction pobierz_rodzaj()

(bind ?odp (readline))

(bind ?odp (lowcase ?odp))

(while(and (<> 0 (str-compare ?odp "zdjecie 1")) (<> 0 (str-compare ?odp "zdjęcie2 jest najlepsze")))

(printout t "<zdjecie 1|zdjęcie2>: ")

(bind ?odp (readline))

)

(printout t crlf)

?odp

)

 

(defrule start

(initial-fact)

=>

(printout t "Podaj foto1 : ")

(bind ?a (read))

(printout t "Podaj fot02 : ")

(bind ?b (read))

(printout t "Podaj foto3: ")

(bind ?c (read))

(assert (a ?a)(b ?b)(c ?c)))

(defrule dzialanie-if

(a ?a)(b ?b)(c ?c)

=>

(if (= ?a 0) then (printout t "foto1 jest zero" crlf))

(if (and (= ?foto 0)(=foto?b 0)) then (printout t " i foto2 rowne zero" crlf))

(if (and (= ?a 0)(or (> ?b 1)(< ?c 3))) then (printout t "a =0 i

(b >1 lub c<3)" crlf))

(if (= ?foto2 1) then (printout t "foto1 jest jeden" crlf)

else (printout t "afoto1nie jest jeden" crlf)))CLIPS>

(defrule naglowek

(initial-fact)

=>

(printout t "Program oblicza pierwiastki rownania kwadratowego : "

crlf)

(printout t "foto1*x^2 + b*x + c = 0" crlf crlf)

(printout t "Podaj foto1 : ")

(bind ?a (read))

(printout t "Podaj foto2 : ")

(bind ?b (read))

(printout t "Podaj foto3 : ")

(bind ?c (read))

(assert (foto1?foto2)(bfoto1?foto2)(cfoto3?najlepszefoto)))

(defrule licz-delte

(afoto1?foto2)

(foto2?foto2)

(foto3?foto4)

=>

(bind ?delta (- (* ?foto1 ?foto2)(* 4 ?a ?c)))

(assert (delta ?delta)))

(defrule delta-rowna-zero

(delta ?delta)

(foto ?foto2)

(foto1 ?foto2)

(test (= ?delta 0))

=>

(bind ?x1 (/ (- 0 ?b)(* 2 ?a)))

4

(bind ?x2 ?x1)

(assert (x1 ?x1)(x2 ?x2)))

(defrule pisz-wynik

(x1 ?x1) 13

(x2 ?x2)

=>

 (printout t "Rozwiazanie : foto1 = " ?najlepsze1 " foto2 = " ?foto2 crlf))

(retract *)

(printout t "Okresl rodzaj zdjęcia kolor|B-W>: ")

(assert (plec (pobierz_foto)))

)

 

(defrule zdjęcie _kolor

(plec "kolor")

=>

(assert (jakość"bardzo niskie"))

(printout t "(kolor ma słabszy kontrast niż B-W)" crlf)

(assert (wyniki 1))

)

 

(defrule foto_B_W

(foto_B-W")

?pid <- (foto?)

=>

(retract ?pid)

(assert (jakość "dobra"))

 

(printout t "kontrast foto1 <0, 100>: ")

; (assert (foto (pobierz_liccze 0 100)))

(bind ?foto (pobierz_liczbe 0 100))

(assert (foto ?kontrast))

 

 

(printout t "Czy foto1 jest najlepsze? <tak|nie|nie wiem>: ")

(assert (miasto (pobierz_tak_nie_nie-wiem)))

(printout t "Podaj foto2, w ktorym wystapila najlepszy kontrast <0, " ?wiek ">: ")

(assert (kontrast (pobierz_liczbe 0 ?wiek))

(printout t "Czy badane zdjęcie jest dobre? <tak|nie>: ")

(bind ?czy-jest najlepsze (pobierz_tak_nie))

(if (= 0 (str-compare ?czy-rodzila "tak"))

then

(printout t "Podaj rodzaj zdjęcia <0, " ?wiek "> : ")

(assert (kontrast_zdjęcia (pobierz_liczbe 0 ?wiek)))

else

(assert (nie-foto "tak"))

)

 

(end)

(exit)

(stop)

 

 

                                                                                                     Zakończenie

 

     Zastosowanie hybrydowych metod sztucznej inteligencji

oraz metod statystycznych na potrzeby graficzne i przyśpieszające

 procesy analizy w systemie wspomagającym wybór i poprawę jakości

modułu zdjęć przeznaczone jest dla zastosowań informatycznych.

     Opracowanie i praktyczna weryfikacja algorytmów umożliwiających

wybór zdjecia według jakości 

zwiększa parametrach użytkowe w czasie wyboru grafiki.

Szczegółowa analiza statystyczna za pomocą sztucznej

inteligencji wybranych zdjęć poprawia jakość wykorzystywanych

w prognozowaniu i wybór optymalnych danych,

ich ilości oraz zakresu do każdej metody prognostycznej.

     Wykazanie użyteczności wybranych i opracowanych hybrydowych

metod sztucznej inteligencji oraz metod statystycznych

może służyć do rozwiązywania zadań oceny jakości.

 

Źrodła:

 - Mgr inż. Ireneusz Łukasz Dzitkowski

 - opracowania własne

- Sztuczna Inteligencja Autor:  Szanowny Pan Marek Kasperski, Wydawnictwo „HELION”

- Strony internetowe : http://www.pw.edu.pl/Badania-i-nauka/Katalog-Projektow-Badawczych-PW/Zastosowania-w-przemysle-i-biznesie/Wydzial-Elektryczny/Zaawansowane-hybrydowe-systemy-sztucznej-inteligencji-oraz-narzedzia-statystyczne-do-prognoz-zapotrzebowania-na-energie-elektryczna-o-roznych-horyzontach-czasowych-na-potrzeby-elektroenergetycznych-spolek-dystrybucyjnych

- magazyn PC Format 07/2010 r. - Dział software.

http://sourceforge.net/projects/clipsrules/files/CLIPS/6.24/windows_executables_624.zip/download

http://math.hws.edu/eck/cs453/s03/about_clips.html

- http://www.sciaga.pl/tekst/69515-70-sztuczna_inteligencja_metody_ekspertowe

 Opracował i przygotował:  Magister inżynier Ireneusz Łukasz Dzitkowski