- •Державний вищий навчальний заклад
- •2.1 Нейронні мережі, аналогія з мозком
- •Біологічний нейрон
- •2.3 Штучний нейрон
- •Навчання генетичних нейронних мереж
- •7.1 Імунні мережі
- •7.2 Експертні мережі
- •7.3 Multivariate Adaptive Regression Splines (mars)
- •7.4 Сигнатурні методи
- •7.5 Статистичний аналіз
- •7.6 Кластерний аналіз
- •7.7 Нейронні мережі
- •7.8 Імунні мережі
- •7.9 Експертні системи
- •9.1 Нейронні мережі
- •Висновок
- •11. Список використаних джерел
- •12. Код додатку
Висновок
Теорія штучних нейронних мереж розвивається стрімко, але в цей час вона недостатня, щоб бути опорою для найбільш оптимістичних проектів. У ретроспективі видно, що теорія розвивалася швидше, ніж передбачали песимісти, але повільніше, ніж сподівалися оптимісти, типова ситуація. Сьогоднішній вибух інтересу залучив до нейронних мереж тисячі дослідників. Резонно чекати швидкого зростання нашого розуміння штучних нейронних мереж, ведучого до більш довершених мережевих парадигм і множини прикладних можливостей.
11. Список використаних джерел
1. http://www.module.ru/files/un_neuron_net.pdf
2 .http://www.neuroproject.ru/neuro.htm
3. http://www.orc.ru/ ~ stasson / neurox.html # articles цикл статей: «нейронні мережі: основні положення», C. Короткий
4 .http://mechanoid.narod.ru/nns/base Основні моделі та методи теорії штучних нейронних мереж, Борисов Є. С., 19 жовтня 2005
5. Wasserman, P. D. (1989). Neural computing theory and practice. (Ф. Восермен Нейрокомп'ютерна техніка: Теорія і практика)
12. Код додатку
<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="info.androidhive.androidcameraapi"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17"/>
<!-- Accessing camera hardware -->
<uses-featureandroid:name="android.hardware.camera"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="info.androidhive.androidcameraapi.MainActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboard|keyboardHidden"
android:screenOrientation="landscape">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:baselineAligned="false"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Перегляд"
android:padding="10dp"
android:textSize="15dp"/>
<!-- To display picture taken -->
<ImageView
android:id="@+id/imgPreview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>
importjava.io.File;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.Locale;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.content.pm.PackageManager;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;
importandroid.net.Uri;
importandroid.os.Bundle;
importandroid.os.Environment;
importandroid.provider.MediaStore;
importandroid.util.Log;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.ImageView;
importandroid.widget.Toast;
importandroid.widget.VideoView;
publicclassMainActivity extendsActivity {
// Activity request codes
privatestaticfinalintCAMERA_CAPTURE_IMAGE_REQUEST_CODE = 100;
privatestaticfinalintCAMERA_CAPTURE_VIDEO_REQUEST_CODE = 200;
publicstaticfinalintMEDIA_TYPE_IMAGE = 1;
publicstaticfinalintMEDIA_TYPE_VIDEO = 2;
// directory name to store captured images and videos
privatestaticfinalString IMAGE_DIRECTORY_NAME = "Hello Camera";
privateUri fileUri; // file url to store image/video
privateImageViewimgPreview;
privateVideoViewvideoPreview;
privateButton btnCapturePicture, btnRecordVideo;
@Override
protectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgPreview = (ImageView) findViewById(R.id.imgPreview);
videoPreview = (VideoView) findViewById(R.id.videoPreview);
btnCapturePicture = (Button) findViewById(R.id.btnCapturePicture);
btnRecordVideo = (Button) findViewById(R.id.btnRecordVideo);
/**
* Capture image button click event
*/
btnCapturePicture.setOnClickListener(newView.OnClickListener() {
publicvoidonClick(View v) {
// capture picture
captureImage();
}
});
/**
* Record video button click event
*/
btnRecordVideo.setOnClickListener(newView.OnClickListener() {
@Override
publicvoidonClick(View v) {
// record video
recordVideo();
}
});
// Checking camera availability
if(!isDeviceSupportCamera()) {
Toast.makeText(getApplicationContext(),
"Sorry! Your device doesn't support camera",
Toast.LENGTH_LONG).show();
// will close the app if the device does't have camera
finish();
}
}
/**
* Checking device has camera hardware or not
* */
privatebooleanisDeviceSupportCamera() {
if(getApplicationContext().getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA)) {
// this device has a camera
returntrue;
} else{
// no camera on this device
returnfalse;
}
/**
* Capturing Camera Image will lauch camera app requrest image capture
*/
privatevoidcaptureImage() {
Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
// start the image capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
}
/**
* Here we store the file url as it will be null after returning from camera
* app
*/
@Override
protectedvoidonSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// save file url in bundle as it will be null on scren orientation
// changes
outState.putParcelable("file_uri", fileUri);
}
@Override
protectedvoidonRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// get the file url
fileUri = savedInstanceState.getParcelable("file_uri");
}
/**
* Recording video
*/
privatevoidrecordVideo() {
Intent intent = newIntent(MediaStore.ACTION_VIDEO_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);
// set video quality
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file
// name
// start the video capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE);
}
/**
* Receiving activity result method will be called after closing the camera
* */
@Override
protectedvoidonActivityResult(intrequestCode, intresultCode, Intent data) {
// if the result is capturing Image
if(requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) {
if(resultCode == RESULT_OK) {
// successfully captured the image
// display it in image view
previewCapturedImage();
} elseif(resultCode == RESULT_CANCELED) {
// user cancelled Image capture
Toast.makeText(getApplicationContext(),
"User cancelled image capture", Toast.LENGTH_SHORT)
.show();
} else{
// failed to capture image
Toast.makeText(getApplicationContext(),
"Sorry! Failed to capture image", Toast.LENGTH_SHORT)
.show();
}
} elseif(requestCode == CAMERA_CAPTURE_VIDEO_REQUEST_CODE) {
if(resultCode == RESULT_OK) {
// video successfully recorded
// preview the recorded video
previewVideo();
} elseif(resultCode == RESULT_CANCELED) {
// user cancelled recording
Toast.makeText(getApplicationContext(),
"User cancelled video recording", Toast.LENGTH_SHORT)
.show();
} else{
// failed to record video
Toast.makeText(getApplicationContext(),
"Sorry! Failed to record video", Toast.LENGTH_SHORT)
.show();
}
}
}
privatevoidpreviewCapturedImage() {
try{
// hide video preview
videoPreview.setVisibility(View.GONE);
imgPreview.setVisibility(View.VISIBLE);
// bimatp factory
BitmapFactory.Options options = newBitmapFactory.Options();
// downsizing image as it throws OutOfMemory Exception for larger
// images
options.inSampleSize = 8;
finalBitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath(),
options);
imgPreview.setImageBitmap(bitmap);
} catch(NullPointerException e) {
e.printStackTrace();
}
}
/**
* Previewing recorded video
*/
privatevoidpreviewVideo() {
try{
// hide image preview
imgPreview.setVisibility(View.GONE);
videoPreview.setVisibility(View.VISIBLE);
videoPreview.setVideoPath(fileUri.getPath());
// start playing
videoPreview.start();
} catch(Exception e) {
e.printStackTrace();
}
}
Creating file uri to store image/video/
publicUri getOutputMediaFileUri(inttype) {
returnUri.fromFile(getOutputMediaFile(type));
}
/**
* returning image / video
*/
privatestaticFile getOutputMediaFile(inttype) {
// External sdcard location
File mediaStorageDir = newFile(
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
IMAGE_DIRECTORY_NAME);
// Create the storage directory if it does not exist
if(!mediaStorageDir.exists()) {
if(!mediaStorageDir.mkdirs()) {
Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create "
+ IMAGE_DIRECTORY_NAME + " directory");
returnnull;
}
}
// Create a media file name
String timeStamp = newSimpleDateFormat("yyyyMMdd_HHmmss",
Locale.getDefault()).format(newDate());
File mediaFile;
if(type == MEDIA_TYPE_IMAGE) {
mediaFile = newFile(mediaStorageDir.getPath() + File.separator
+ "IMG_"+ timeStamp + ".jpg");
} elseif(type == MEDIA_TYPE_VIDEO) {
mediaFile = newFile(mediaStorageDir.getPath() + File.separator
+ "VID_"+ timeStamp + ".mp4");
} else{
returnnull;
}
returnmediaFile;
}
}