Skip to main content

ðŸ‘Ī āļĢāļ°āļšāļšāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē (Face Recognition)

Version Status

āļĒāļīāļ™āļ”āļĩāļ•āđ‰āļ­āļ™āļĢāļąāļšāļŠāļđāđˆ Face Recognition API āļœāļĨāļīāļ•āļ āļąāļ“āļ‘āđŒ AI āļ—āļĩāđˆāļžāļąāļ’āļ™āļēāđ‚āļ”āļĒ āļšāļĢāļīāļĐāļąāļ— āđ„āļ­āđāļ­āļžāļžāđŒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ āļˆāļģāļāļąāļ” API āļ‚āļ­āļ‡āđ€āļĢāļēāđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđƒāļ™āļ āļēāļžāļ”āđ‰āļ§āļĒāļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđāļĨāļ°āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āļŠāļđāļ‡ API āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļąāđ‰āļ‡āđāļšāļšāđ€āļ”āļĩāđˆāļĒāļ§āđāļĨāļ°āđāļšāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļēāļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļāļēāļĢāđƒāļŦāđ‰āļ„āļ°āđāļ™āļ™āļ—āļĩāđˆāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™

Try Demo

Visit our API Portal to test the Face Recognition API with your own images.

āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđƒāļŠāđ‰āļ‡āļēāļ™â€‹

  1. āļ‚āđ‰āļ­āļāļģāļŦāļ™āļ”āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™

    • API key āļˆāļēāļ āđ„āļ­āđāļ­āļžāļžāđŒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ
    • āđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāļĄāļĩāđƒāļšāļŦāļ™āđ‰āļē
    • āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš: JPEG, JPG, PNG
    • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 2MB
  2. āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ­āļĒāđˆāļēāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§

    • āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§
    • āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđāļĄāđˆāļ™āļĒāļģāļŠāļđāļ‡
    • āļĢāļ­āļ‡āļĢāļąāļšāļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒāļŦāļĨāļēāļĒāļĢāļđāļ›āđāļšāļš
    • āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļāļēāļĢāđƒāļŦāđ‰āļ„āļ°āđāļ™āļ™āļ—āļĩāđˆāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™
  3. āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļŦāļĨāļąāļ

    • āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđāļšāļšāđ€āļ”āļĩāđˆāļĒāļ§āđāļĨāļ°āđāļšāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē
    • āļžāļīāļāļąāļ”āļāļĨāđˆāļ­āļ‡āļĨāđ‰āļ­āļĄāļĢāļ­āļšāđƒāļšāļŦāļ™āđ‰āļē
    • āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāđ€āļŠāļ·āđˆāļ­āļĄāļąāđˆāļ™āđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģ
    • āļāļēāļĢāļ”āļķāļ‡āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļē
    • āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļāļēāļĢāđƒāļŦāđ‰āļ„āļ°āđāļ™āļ™āđ€āļ‰āļžāļēāļ°āļšāļĢāļīāļĐāļąāļ—
  4. āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļāļŽāļĢāļ°āđ€āļšāļĩāļĒāļš

    • āđ€āļ›āđ‡āļ™āđ„āļ›āļ•āļēāļĄ GDPR āđāļĨāļ° PDPA
    • āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđ€āļāđ‡āļšāļĢāļąāļāļĐāļēāļ‚āđ‰āļ­āļĄāļđāļĨāļŦāļĨāļąāļ‡āļˆāļēāļāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ
āļ§āļīāļ˜āļĩāļĢāļąāļš API Key?

āļāļĢāļļāļ“āļēāđ€āļĒāļĩāđˆāļĒāļĄāļŠāļĄ API Portal āđ€āļžāļ·āđˆāļ­āļ”āļđ API key āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļ„āļļāļ“āļŦāļĢāļ·āļ­āļ‚āļ­ API key āđƒāļŦāļĄāđˆ

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡â€‹

āļ„āļģāļ‚āļ­āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē:​

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ āļēāļž

Face Detection Example

  curl  --location 'https://api.iapp.co.th/face_recog_single' \
--header 'apikey: {YOUR API KEY}' \
--form 'file=@"{YOUR UPLOADED FILE}"' \
--form 'company="{YOUR COMPANY NAME}"'

āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē:​

{
"bbox": {
"xmax": 255.44717407226562,
"xmin": 154.39295959472656,
"ymax": 282.8843688964844,
"ymin": 155.49319458007812
},
"company": "{YOUR COMPANY NAME}",
"detection_score": 0.9998624324798584,
"message": "successfully performed",
"name": "unknown",
"process_time": 0.4776473045349121,
"recognition_score": 0.0
}

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–​

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļŦāļĨāļąāļâ€‹

  • āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđāļšāļšāđ€āļ”āļĩāđˆāļĒāļ§āđāļĨāļ°āđāļšāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļēāđƒāļ™āļ āļēāļž
  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļžāļĢāđ‰āļ­āļĄāļžāļīāļāļąāļ”āļāļĨāđˆāļ­āļ‡āļĨāđ‰āļ­āļĄāļĢāļ­āļš
  • āļāļēāļĢāļ”āļķāļ‡āđāļĨāļ°āļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāļ„āļļāļ“āļĨāļąāļāļĐāļ“āļ°āđƒāļšāļŦāļ™āđ‰āļē
  • āđ€āļāļ“āļ‘āđŒāļ„āļ°āđāļ™āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āļāļēāļĢāļˆāļ”āļˆāļģāļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡āđ„āļ”āđ‰
  • āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļē (āđ€āļžāļīāđˆāļĄ/āļĨāļšāđƒāļšāļŦāļ™āđ‰āļē)
  • āļāļēāļĢāļŠāđˆāļ‡āļ­āļ­āļ/āļ™āļģāđ€āļ‚āđ‰āļēāļ„āļļāļ“āļĨāļąāļāļĐāļ“āļ°āđƒāļšāļŦāļ™āđ‰āļē

āļŸāļīāļĨāļ”āđŒāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšâ€‹

  • āļžāļīāļāļąāļ”āļāļĨāđˆāļ­āļ‡āļĨāđ‰āļ­āļĄāļĢāļ­āļšāđƒāļšāļŦāļ™āđ‰āļē (xmin, xmax, ymin, ymax)
  • āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāđ€āļŠāļ·āđˆāļ­āļĄāļąāđˆāļ™āđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš
  • āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāđ€āļŠāļ·āđˆāļ­āļĄāļąāđˆāļ™āđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģ
  • āļāļēāļĢāļĢāļ°āļšāļļāļŠāļ·āđˆāļ­āļšāļļāļ„āļ„āļĨ
  • āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ

āļ‚āđ‰āļ­āļĄāļđāļĨāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ API​

āļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ”āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē​

  1. āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđāļšāļšāđ€āļ”āļĩāđˆāļĒāļ§ (/face_recog_single)

    • āļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ‚āļ”āļ”āđ€āļ”āđˆāļ™āļ—āļĩāđˆāļŠāļļāļ”āđƒāļ™āļ āļēāļž
    • āļŠāđˆāļ‡āļ„āļ·āļ™āļ•āļģāđāļŦāļ™āđˆāļ‡āđāļĨāļ°āļ‚āđ‰āļ­āļĄāļđāļĨāļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļ‚āļ­āļ‡āđƒāļšāļŦāļ™āđ‰āļē
  2. āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđāļšāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē (/face_recog_multi)

    • āļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđƒāļ™āļ āļēāļž
    • āļŠāđˆāļ‡āļ„āļ·āļ™āļ­āļēāļĢāđŒāđ€āļĢāļĒāđŒāļ‚āļ­āļ‡āļ•āļģāđāļŦāļ™āđˆāļ‡āđāļĨāļ°āļ‚āđ‰āļ­āļĄāļđāļĨāļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļ‚āļ­āļ‡āđƒāļšāļŦāļ™āđ‰āļē
  3. āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđāļšāļšāđ€āļ”āļĩāđˆāļĒāļ§ (/face_recog_facecrop)

    • āļˆāļ”āļˆāļģāļŠāļ·āđˆāļ­āļ‚āļ­āļ‡āļšāļļāļ„āļ„āļĨāđƒāļ™āļĢāļđāļ›āļ āļēāļžāđ‚āļ”āļĒāđƒāļŠāđ‰āđ€āļ‰āļžāļēāļ°āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļē
    • āļŠāđˆāļ‡āļ„āļ·āļ™āļ•āļģāđāļŦāļ™āđˆāļ‡āđāļĨāļ°āļ‚āđ‰āļ­āļĄāļđāļĨāļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļ‚āļ­āļ‡āđƒāļšāļŦāļ™āđ‰āļē

āļĢāļēāļ„āļē​

āļŠāļ·āđˆāļ­āļšāļĢāļīāļāļēāļĢ AI APIEndpointIC āļ•āđˆāļ­āļ„āļģāļ‚āļ­On-Premise
āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēiapp_face_recog_v2_multiple_face0.5 IC/Requestāļ•āļīāļ”āļ•āđˆāļ­
iapp_face_recog_v2_only_face0.3 IC/Request
iapp_face_recog_v2_single_face0.3 IC/Request

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”​

Python​

    import requests

def recognize_face(image_path, api_key, company):
url = "https://api.iapp.co.th/face_recog_single"

payload = {'company': {YOUR COMPANY NAME}}
files = [
('file', ({YOUR UPLOADED FILE}, open({YOUR UPLOADED FILE}, 'rb'), 'image/jpeg'))
]
headers = {
'apikey': {YOUR API KEY}
}

response = requests.post(url, headers=headers, data=payload, files=files)
return response.json()

JavaScript​

const myHeaders = new Headers();
myHeaders.append("apikey", "{YOUR API KEY}");

const formdata = new FormData();
formdata.append("file", fileInput.files[0], "{YOUR UPLOADED FILE}");
formdata.append("company", "{YOUR COMPANY NAME}");

const requestOptions = {
method: "POST",
headers: myHeaders,
body: formdata,
redirect: "follow"
};

fetch("https://api.iapp.co.th/face_recog_single", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));

PHP​

    <?php
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/face_recog_single',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'file' => new CURLFILE('{YOUR UPLOADED FILE}'),
'company' => '{YOUR COMPANY NAME}'
),
CURLOPT_HTTPHEADER => array(
'apikey: {YOUR API KEY}'
),
));

$response = curl_exec($curl);
curl_close($curl);
echo $response;

Swift​

let parameters = [
[
"key": "file",
"src": "{YOUR UPLOADED FILE}",
"type": "file"
],
[
"key": "company",
"value": "{YOUR COMPANY NAME}",
"type": "text"
]] as [[String: Any]]

let boundary = "Boundary-\(UUID().uuidString)"
var body = Data()
var error: Error? = nil
for param in parameters {
if param["disabled"] != nil { continue }
let paramName = param["key"]!
body += Data("--\(boundary)\r\n".utf8)
body += Data("Content-Disposition:form-data; name=\"\(paramName)\"".utf8)
if param["contentType"] != nil {
body += Data("\r\nContent-Type: \(param["contentType"] as! String)".utf8)
}
let paramType = param["type"] as! String
if paramType == "text" {
let paramValue = param["value"] as! String
body += Data("\r\n\r\n\(paramValue)\r\n".utf8)
} else {
let paramSrc = param["src"] as! String
let fileURL = URL(fileURLWithPath: paramSrc)
if let fileContent = try? Data(contentsOf: fileURL) {
body += Data("; filename=\"\(paramSrc)\"\r\n".utf8)
body += Data("Content-Type: \"content-type header\"\r\n".utf8)
body += Data("\r\n".utf8)
body += fileContent
body += Data("\r\n".utf8)
}
}
}
body += Data("--\(boundary)--\r\n".utf8);
let postData = body


var request = URLRequest(url: URL(string: "https://api.iapp.co.th/face_recog_single")!,timeoutInterval: Double.infinity)
request.addValue("{YOUR API KEY}", forHTTPHeaderField: "apikey")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

request.httpMethod = "POST"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}

task.resume()

Kotlin​

val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{YOUR UPLOADED FILE}",
File("{YOUR UPLOADED FILE}").asRequestBody("application/octet-stream".toMediaType()))
.addFormDataPart("company","{YOUR COMPANY NAME}")
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/face_recog_single")
.post(body)
.addHeader("apikey", "{YOUR API KEY}")
.build()
val response = client.newCall(request).execute()

Java​

OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{YOUR UPLOADED FILE}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{YOUR UPLOADED FILE}")))
.addFormDataPart("company","{YOUR COMPANY NAME}")
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/face_recog_single")
.method("POST", body)
.addHeader("apikey", "{YOUR API KEY}")
.build();
Response response = client.newCall(request).execute();

Dart​

var headers = {
'apikey': '{YOUR API KEY}'
};
var request = http.MultipartRequest('POST', Uri.parse('https://api.iapp.co.th/face_recog_single'));
request.fields.addAll({
'company': '{YOUR COMPANY NAME}'
});
request.files.add(await http.MultipartFile.fromPath('file', '{YOUR UPLOADED FILE}'));
request.headers.addAll(headers);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}

āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āđāļĨāļ°āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”​

āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”​

  • āļ‚āļ™āļēāļ”āļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ”: 2MB
  • āļ‚āļ™āļēāļ”āļ āļēāļžāļ‚āļąāđ‰āļ™āļ•āđˆāļģ: 600x400 āļžāļīāļāđ€āļ‹āļĨ
  • āļ‚āļ™āļēāļ”āđƒāļšāļŦāļ™āđ‰āļēāļ‚āļąāđ‰āļ™āļ•āđˆāļģ: 112x112 āļžāļīāļāđ€āļ‹āļĨ
  • āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš: JPG, JPEG, PNG
  • āļĄāļĩāļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ„āļ§āļēāļĄāļĒāļēāļ§āļ„āļīāļ§

āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”​

  • āđƒāļŠāđ‰āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļŠāļ§āđˆāļēāļ‡āļŠāļąāļ”āđ€āļˆāļ™
  • āļ•āļĢāļ§āļˆāļŠāļ­āļšāđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāđƒāļšāļŦāļ™āđ‰āļēāđ„āļĄāđˆāļ–āļđāļāļšāļ”āļšāļąāļ‡
  • āļŠāđˆāļ‡āļ‚āļ™āļēāļ”āļ āļēāļžāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄ
  • āļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ‚āļ­āļ‡ API āļ­āļĒāđˆāļēāļ‡āđ€āļŦāļĄāļēāļ°āļŠāļĄ
  • āļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš/āļāļēāļĢāļˆāļ”āļˆāļģāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄ

āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđāļĨāļ°āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžâ€‹

āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđ‚āļ”āļĒāļĢāļ§āļĄâ€‹

  • āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļŠāļđāļ‡āļŠāļģāļŦāļĢāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ•āļĢāļ‡
  • āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™āđ„āļ›āļ•āļēāļĄāļ„āļļāļ“āļ āļēāļžāļ‚āļ­āļ‡āļ āļēāļž
  • āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģāļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļ„āļļāļ“āļ āļēāļžāļ‚āļ­āļ‡āđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™

āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ​

  • āđ€āļ§āļĨāļēāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ—āļąāđˆāļ§āđ„āļ›: 0.3-1.0 āļ§āļīāļ™āļēāļ—āļĩ
  • āļ­āļēāļˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™āđ„āļ›āļ•āļēāļĄāļ āļēāļĢāļ°āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ
  • āļĢāļ°āļšāļšāļ„āļīāļ§āļˆāļąāļ”āļāļēāļĢāļ›āļĢāļīāļĄāļēāļ“āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļđāļ‡

āļ›āļąāļˆāļˆāļąāļĒāļ—āļĩāđˆāļĄāļĩāļœāļĨāļ•āđˆāļ­āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ​

  • āļ„āļļāļ“āļ āļēāļžāđāļĨāļ°āđāļŠāļ‡āļŠāļ§āđˆāļēāļ‡āļ‚āļ­āļ‡āļ āļēāļž
  • āļĄāļļāļĄāđāļĨāļ°āļāļēāļĢāđāļŠāļ”āļ‡āļ­āļ­āļāļ‚āļ­āļ‡āđƒāļšāļŦāļ™āđ‰āļē
  • āļ‚āļ™āļēāļ”āđƒāļšāļŦāļ™āđ‰āļēāđƒāļ™āļ āļēāļž
  • āļˆāļģāļ™āļ§āļ™āđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™
  • āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš/āļāļēāļĢāļˆāļ”āļˆāļģ

āļ›āļĢāļ°āļ§āļąāļ•āļī​

āļĢāļ°āļšāļšāļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļžāļąāļ’āļ™āļēāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđāļ‚āđ‡āļ‡āđāļāļĢāđˆāļ‡ āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāļĒāļąāļ‡āļ„āļ‡āļĢāļąāļāļĐāļēāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āļĄāļēāļ•āļĢāļāļēāļ™āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļŠāļđāļ‡